我有一个解决方案,其中应用程序使用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);
}
);
没有太多的文档,所以任何帮助都会很棒
答案 0 :(得分:0)
我终于意识到问题所在。我误解了socket.io-emitter正在做什么。
我从发射器发送消息,然后尝试在服务器上捕获它,然后将其推送到客户端。发射器实际上是直接向Web浏览器中的客户端广播,就好像它只是另一个服务器插槽(这就是我想要的)。
我更新了客户端代码以检查其完美运行的消息