socket.io:从服务器向服务器发送消息!

4
我可以愉快地从服务器向客户端发送消息,也可以从客户端向服务器发送消息。然而,我似乎需要从服务器本身向(服务器)套接字发送广播消息,但我不知道如何处理。
情况是这样的,服务器通过Redis订阅了解到可能需要向子集发送消息。每个服务器端套接字可以自行确定是否需要触发。我只是不知道如何让它们知道它们必须进行检查(可能与通常情况下通过来自客户端的消息相同)。
顺便说一句,可以仅使用handshakeData(以及其他非套接字实例特定的服务器端结构)进行检查。如果有一种方法可以从“外部”访问handshakeData,则也是一种可能性;但绝不是很漂亮。
有任何想法/指针吗?

你可以使用 socket.io-client 模块连接到本地主机。 - Ryan Olds
2个回答

1

0

我似乎终于搞定了(通过调试socket.io代码)。

在消息处理程序中获取相关的socket,并设置一个'params'数组,其中包含事件和其他属性(通常是一个带有附加信息的'data'对象)。使用这两个参数调用socket.$emit.apply(socket, params)

实际代码如下:

for (var socketId in io.namespaces['/mynamespace'].sockets) {
    var socket = io.namespaces['/mynamespace'].sockets[socketId];
    var params = ['test event', {'foo': 'bar'}];
    socket.$emit.apply(socket, params);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接