我正在尝试在NodeJS中(集群架构,分离的虚拟机)使用socket.io建立服务器之间的通信。
我尝试使用这里发布的内容: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
之间的通信(用于缓存失效等):