【问题标题】:socket.io-redis not forwarding messages to sockets on a namespacesocket.io-redis 没有将消息转发到命名空间上的套接字
【发布时间】:2016-02-08 00:40:07
【问题描述】:

我有一个解决方案,其中应用程序使用 socket.io-emitter 发出消息,而套接字服务器正在处理消息。

套接字服务器从客户端浏览器接收消息没有问题,但是它不会从其他应用程序接收任何通过 redis 适配器发送的消息。

我已经调试了 redis 适配器,可以看到消息正在被接收,我还可以看到它们与正确的命名空间相关联。他们只是似乎没有触发 socket.on() 事件

服务器代码还有更多内容,但基本上可以归结为以下内容

io.adapter(redisIO({host: redisHost, port: redisPort}));     
io.of('/mynamespace').on('connection',
    function(socket) {
       // This message never gets fired
       socket.on('other-server-message',dosomething);
       // This message works fine
       socket.on('message-from-browser-client',dosomethingelse);
    }
);

没有太多的文档,所以任何帮助都会很棒

【问题讨论】:

    标签: node.js socket.io


    【解决方案1】:

    我最终意识到问题所在。我误解了 socket.io-emitter 在做什么。

    我从发射器发送消息,然后尝试在服务器上捕获它,然后将其推送到客户端。发射器实际上是直接向 Web 浏览器中的客户端广播,就好像它只是另一个服务器套接字(这是我想要的)。

    我更新了客户端代码以检查它是否完美运行的消息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-03
      • 1970-01-01
      • 2011-09-22
      • 2016-11-04
      • 2012-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多