我正在使用socket.io和node.js,直到现在看起来还不错,但我不知道如何从服务器向特定客户端发送消息,如下所示:
client.send(message, receiverSessionId)
但是无论是.send()还是.broadcast()方法似乎都无法满足我的需求。
.send()
.broadcast()
我发现一种可能的解决方案是,该.broadcast()方法将不发送消息的SessionId数组作为第二个参数,因此我可以将此时连接了所有SessionId的数组传递给服务器,除了那个我希望发送邮件,但是我觉得必须有一个更好的解决方案。
有任何想法吗?
好吧,您必须为此赢得客户(惊喜),您可以采用以下简单方法:
var io = io.listen(server); io.clients[sessionID].send()
我怀疑这可能会中断,但是它总是有io.clients可能被更改,因此请谨慎使用以上内容
io.clients
或者您自己跟踪客户端,因此将它们添加到侦听器中自己的clients对象中,connection然后在disconnect侦听器中将其删除。
clients
connection
disconnect
我将使用后一种,因为根据您的应用程序,您可能仍希望在客户端上具有更多状态,因此clients[id] = {conn: clientConnect, data: {...}}可以完成类似的工作。
clients[id] = {conn: clientConnect, data: {...}}