Ce sont les versions de noeud et modules requis J'utilise:mandatement WebSockets par noeud proxy HTTP ne fonctionne pas
- Node.js: 0.10.16
- Websocket Bibliothèque: einaros/ws [email protected]
- serveur proxy: nodejitsu/noeud proxy HTTP [email protected]
Quand je lance le programme suivant ma sortie de la console ressemble à ceci, et ne se déplace pas au-delà ce point:
$ node app.js
proxy: got upgrade, proxying web request
wss: got connection
Voici le code:
// app.js
// A simple proxying example
//
// Setup websocket server on port 19000
// Setup proxy on port 9000 to proxy to 19000
// Make a websocket request to 9000
//
var WebSocket = require('ws'),
WebSocketServer = WebSocket.Server,
proxy = require('http-proxy');
// goes in a loop sending messages to the server as soon as
// the servers are setup
var triggerClient = function() {
var ws = new WebSocket('ws://localhost:9090/');
ws.on('open', function() {
console.log('ws: connection open');
setInterval(function() {
ws.send("Hello");
}, 1000);
});
ws.on('message', function(data) {
console.log('ws: got ' + data);
});
}
// setup websocket server and a proxy
//
var go = function() {
// setup a websocket server on port 19000
//
var wss = new WebSocketServer({ port: 19000 });
wss.on('connection', function(ws) {
console.log('wss: got connection');
ws.on('message', function(data) {
console.log('wss: got ' + data);
ws.send('wss response: ' + data);
});
});
// setup a proxy server
var server = proxy.createServer(function (req, res, proxy) {
proxy.proxyRequest(req, res, {
host: 'localhost',
port: 19000
});
});
server.on('upgrade', function (req, socket, head) {
console.log('proxy: got upgrade, proxying web request');
server.proxy.proxyWebSocketRequest(req, socket, head, {
host: 'localhost',
port: 19000
});
});
server.listen(9090, triggerClient);
};
process.nextTick(go);
Mon problème a finalement commencé quand je tentais d'utiliser hipache, je puis simplifié les choses au nœud-http-proxy, puis enfin à ce morceau de code.
Si vous modifiez le port auquel le client WebSocket se connecte de 9090 à 19000 (contournant ainsi le proxy), les choses semblent fonctionner correctement.
Toutes les suggestions, les pointeurs, les commentaires seraient grandement appréciés.
Merci!
On dirait que c'est quelque chose qui est en cours de traitement comme discuté ici: http://stackoverflow.com/questions/16503349/node-http-proxy-with-proxytable-and-websockets – verma