NodeJS Socket.io 服务器<-->服务器通信
NodeJS Socket.io Server<-->Server communication
我正在尝试使用 socket.io 在 NodeJS(集群架构,独立虚拟机)中建立服务器到服务器的通信。
我尝试使用此处发布的内容 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
之间的通信(缓存失效等):
对于那些正在寻找类似案例解决方案的人:
我发现这篇文章 http://code.tutsplus.com/tutorials/multi-instance-nodejs-app-in-paas-using-redis-pubsub--cms-22239 基本上回答了我的问题。
通过 Redis publish/subscribe 机制,我实现了我想要的。 :)
我正在尝试使用 socket.io 在 NodeJS(集群架构,独立虚拟机)中建立服务器到服务器的通信。 我尝试使用此处发布的内容 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
之间的通信(缓存失效等):
对于那些正在寻找类似案例解决方案的人: 我发现这篇文章 http://code.tutsplus.com/tutorials/multi-instance-nodejs-app-in-paas-using-redis-pubsub--cms-22239 基本上回答了我的问题。 通过 Redis publish/subscribe 机制,我实现了我想要的。 :)