NodeJS Socket.io Server< - >服务器通信

时间:2016-04-26 19:41:09

标签: node.js redis socket.io scalability socket.io-redis

我尝试使用socket.io在NodeJS(集群架构,单独的VM)中建立服务器到服务器通信。 我尝试使用此处发布的内容http://socket.io/docs/using-multiple-nodes/

var io = require('socket.io')(3000);
var redis = require('socket.io-redis');
io.adapter(redis({ host: 'localhost', port: 6379 }));

所以我假设(可能是错的)在做io.emit("message", "some example message")时我可以用:

来听
 io.on('connection', function(socket){
  console.log("io.on");
  socket.on('message', function(msg){
    console.log('message: ' + msg);
  });
});

当运行一个服务器(node_app)并在另一个服务器上发送事件时,我看到调试消息:

socket.io-parser encoding packet {"type":2,"data":["message","some example message"],"nsp":"/"} +6s
  socket.io-parser encoded {"type":2,"data":["message","some example message"],"nsp":"/"} as 2["message","some example message"] +0ms

我希望在每个node_app之间实现通信(缓存失效等):

enter image description here

1 个答案:

答案 0 :(得分:1)

对于那些寻求类似案件解决方案的人: 我发现这篇文章http://code.tutsplus.com/tutorials/multi-instance-nodejs-app-in-paas-using-redis-pubsub--cms-22239基本上回答了我的问题。 使用Redis发布/订阅机制,我实现了我想要的。 :)