mos*_*krc 2 socket.io socket.io-redis
我受到了这样的启发:http://socket.io/docs/using-multiple-nodes/#passing-events-between-nodes,现在我想通过redis adpter同步我的两个socket.io实例.
这是我的代码:
//FIRST SERVER (server1.js)
var io = require('socket.io')(3000);
var redis = require('socket.io-redis');
io.adapter(redis({ host: 'localhost', port: 6379 }));
var test = 0;
io.on('connection', function (socket) {
test+=1;
console.log("connection. test = " + test);
});
//SECOND SERVER (server2.js)
var io = require('socket.io')(4000);
var redis = require('socket.io-redis');
io.adapter(redis({ host: 'localhost', port: 6379 }));
var test = 0;
io.on('connection', function (socket) {
test+=1;
console.log("connection. test = " + test);
});
Run Code Online (Sandbox Code Playgroud)
当我连接到server1.js(端口3000) - 我看到'连接.test = 1',这很好,但第二台服务器的控制台仍然干净.我希望第二台服务器(端口4000)做同样的事情(打印'连接= 1').
我做错了什么?你能告诉我一个如何使用适配器的例子吗?
谢谢
如果你只是连接到server1:3000那里io.on('connection', ...)就不会被触发server2:4000- 毕竟,你没有连接到那个服务器.
每个客户端将仅连接到您的一台服务器.如果您没有使用Redis适配器,则连接到不同服务器的客户端将无法进行通信.现在使用Redis适配器,服务器可以了解彼此的客户端,并可以向所有服务器的所有连接客户端广播消息.
| 归档时间: |
|
| 查看次数: |
1834 次 |
| 最近记录: |