如何在多个服务器上使用socket.io-redis?

我有两台机器上的以下代码

var server = require('http').createServer(app); io = require('socket.io')(server); var redisAdapter = require('socket.io-redis'); io.adapter(redisAdaptebr({host: config.redis.host, port: config.redis.port})); server.listen(config.port, function () { 

我存储连接到这两台机器上的每个客户端的socket.id中央数据库,套接字的ID被保存,同一台服务器上的事件发送完美地工作,但是当我试图发送消息到其他服务器的套接字它不工作..

 subSocket = io.sockets.connected[userSocketID]; subSocket.emit('hello',{a:'b'}) 
  1. 我怎么知道redis是好的。
  2. 如何发送消息到另一台服务器上连接的套接字。

你不能。 Socket.IO需要粘性会话。 套接字必须与原始进程完全通信。

文档

您可以让socket.io服务器相互通信以传递事件,但客户端必须继续与其发起的进程通话。

我在类似的问题,但我可以回答你的第一个问题。 您可以在terminal上使用该命令来监视由redis处理的所有命令:

 redis-cli monitor 

http://redis.io/commands/MONITOR

不幸的是我不能帮你进一步,因为我仍然有问题,即使这两个服务器都发送到redis的东西。