当前位置: 首页 > 面试题库 >

如何为房间中的所有客户端更新套接字对象?(socket.io)

那谦
2023-03-14
问题内容

io.sockets.on(‘connection’, function(socket) {
socket.object = socket.id;

    socket.on('updateObject', function(data) {
        // How to update socket.object here for all clients?
    });
});

怎么做?


问题答案:

请注意,此功能在高于1.0的socket.io版本中不再可用,建议保留您的socket.id数组,以便您可以在需要时对其进行迭代。

您可以使用以下forEach功能实现此目的:

io.sockets.on('connection', function(socket) {
socket.object = socket.id;

    socket.on('updateObject', function(data) {
        io.sockets.clients('room').forEach(function (socket, data) {
            // goes through all clients in room 'room' and lets you update their socket objects
        });
    });
});


 类似资料:
  • 问题内容: 是否可以强制所有客户端使用socket.io更新?我尝试了以下操作,但是当新客户端连接时,它似乎没有更新其他客户端: 服务器端JavaScript: 我正在尝试向所有客户端发送一条消息,其中包含当前已连接的用户数,它可以正确发送用户数量…。但是,客户端本身似乎不会更新,直到刷新页面为止。我希望这是实时发生的。 客户端JavaScript: 问题答案: 实际上,它根本没有向其他客户端发送

  • 问题内容: 是否可以获取当前插座所在的房间,而无需致电 每个房间的名称,并在结果中寻找此插座 问题答案: 从Socket.IO会议室文档:

  • 我在unix(OSX)机器上使用kqueue建立了一个TCP/IP echo服务器,它可以打开100个TCP/IP端口,每个端口接受4000个客户端,我使用另外15台机器建立了大约23万个连接。(每道工序4000康纳,每箱4道工序) 服务器似乎可以接受更多,但问题是客户端,建立更多连接是有限制的。如Windows XP-3000、Windows7、UNIX-16384。 我怎么克服?

  • 问题内容: 我正在尝试获取当前已连接的所有套接字/客户端的列表。 不幸的是,它不返回数组。 我知道我可以使用数组保留自己的列表,但是由于以下两个原因,这并不是最佳解决方案: 冗余。Socket.IO已保留此列表的副本。 Socket.IO提供了为客户端(即:)设置任意字段值的方法,因此,如果我要维护自己的列表,则需要跟上这些更改。 救命? 问题答案: 在Socket.IO 0.7中,您在名称空间上

  • 我对套接字协议非常陌生,我肯定问题来自于我对此几乎一无所知。但是基本上我在服务器端口5000上有一个套接字,我需要一个angularjs代码来监听这个套接字。服务器上的套接字可以读取我从另一台计算机(客户端)发送的任何内容。但是由于某种原因,angular代码不能监听/连接到插座。以下是我现在所拥有的: index.html 下面是angularjs代码: 在Firefox中: Firefox无法