如何在多个服务器上使用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'})
- 我怎么知道redis是好的。
- 如何发送消息到另一台服务器上连接的套接字。
你不能。 Socket.IO需要粘性会话。 套接字必须与原始进程完全通信。
文档
您可以让socket.io服务器相互通信以传递事件,但客户端必须继续与其发起的进程通话。
我在类似的问题,但我可以回答你的第一个问题。 您可以在terminal上使用该命令来监视由redis处理的所有命令:
redis-cli monitor
http://redis.io/commands/MONITOR
不幸的是我不能帮你进一步,因为我仍然有问题,即使这两个服务器都发送到redis的东西。