【问题标题】:Socket IO V0.7: How to send message to more that one specific clientSocket IO V0.7:如何向多个特定客户端发送消息
【发布时间】:2011-08-14 20:36:58
【问题描述】:

在 0.6 版中,我使用此方法向特定的客户端组发送消息。它将排除具有 'excludedClients' 数组中会话 ID 的客户端,并发送给所有未被排除的客户端。

var excludedClients = [sessionID1, sessionID2, sessionID3];
io.broadcast(msg, excludedClients);
  1. 这个方法在 V0.7 中是否仍然适用?
  2. 这是最好的方法吗?

希望有人能帮我解决这个问题,似乎没有任何关于 Socket IO 的可靠文档,只是在 github 页面上简要解释了示例。

【问题讨论】:

    标签: javascript node.js real-time websocket socket.io


    【解决方案1】:
    1. 我相信是这样;查看wiki page on 0.6 to 0.7 migration

    2. 如果您的客户可以按逻辑分组,则可以使用房间。

    房间

    有时你想在一个房间里放一堆插座,然后给它们发送消息。您可以通过在套接字上调用join,然后使用标志toin 来利用房间:

    io.sockets.on('connection', function (socket) {
      socket.join('a room');
      socket.broadcast.to('a room').send('im here');
      io.sockets.in('some other room').emit('hi');
    });
    

    【讨论】:

    • 感谢您的提示,但我已经计划使用房间功能。我需要能够通过仅说明他们的 sessionID 来向各个客户发送消息。 90% 的情况下,这将是客户之间的一对一迭代,但在某些情况下可能涉及多达 10 人。
    • 明白了。万一您不知道,您可以使用会话 ID 将数据发送到特定客户端:io.sockets.socket(sess_id).send('my message') 等。 (请参阅我链接到的 wiki 页面的底部)。不要认为你可以使用它来发送给多个客户端,但你可以在没有太多麻烦的情况下循环数组。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-07
    • 2018-02-05
    • 2013-04-24
    • 2019-06-01
    • 2016-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多