node.js - nodejs cluster socket.io nginx configuration -



node.js - nodejs cluster socket.io nginx configuration -

i running nodejs cluster socket.io library. proxing request via nginx server. websocket connections working fine in of cases not working polling transport protocol in socket.io.

here's pseudo code:

if (cluster.ismaster) { // fork workers. (var = 0; < numcpus-1; i++) { cluster.fork(); } else{ var server = http.createserver(function(request, response){ console.log('connecting server'); response.end(); }); server.listen(port); var socket_io = require('socket.io')(server); var redis_adapter = require('socket.io-redis'); //config.redis.ip,config.redis.port socket_io.adapter(redis_adapter({ host: config.redis.ip, port: config.redis.port })); socket_io.use(function(socket, next){ }); socket_io.on('connection', function (socket) { };

would know there issue in code. need utilize sticky-session .if yes right way utilize in case.

websockets sticky default.

the problem polling transport connection request going worker1 whereas handshake or subsequents requests might land other worker..lets worker2. , worker2 have no info socket connection established worker1.

if socket.io server direct deployment, can utilize sticky-session(http://socket.io/docs/using-multiple-nodes/).

but if socket.io server behind proxy server, sticky session might not work in efficient manner sticky-server balances request per remote ip address. , in case of proxy server, request fall on same worker , rest of workers ideal.

in case, 1 possible solution start socket.io workers on multiple ports , cluster balancing in nginx/apache. contact farther help.

node.js sockets nginx websocket socket.io

Comments

Popular posts from this blog

java - How to set log4j.defaultInitOverride property to false in jboss server 6 -

c - GStreamer 1.0 1.4.5 RTSP Example Server sends 503 Service unavailable -

Using ajax with sonata admin list view pagination -