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

 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需要粘性 session 。套接字必须仅与原始进程进行通信。

    docs

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

    关于node.js - 如何在多个服务器上使用socket.io-redis?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34273256/

    10-12 23:52
    查看更多