【问题标题】:NodeJs Socket.io RoomsNodeJs Socket.io 房间
【发布时间】:2019-05-13 19:00:57
【问题描述】:

这是一个非常简单的问题,但我想确保我正在正确扩展我们的 socket.io 实现。在 nodejs 后端经过漫长的处理后,我们正在使用 socket.io 响应客户端。所以基本上客户端进行调用,然后 socket.io 向客户端发出进程已经完成的信号。此外,socket.io 仅响应为请求建立的临时房间。

在 nodejs 中,我为以下内容创建了一个全局变量,以便我可以发送回客户端:

global.io = require('socket.io')(server);

但是要创建房间本身,我有点不确定如何在全局范围内创建它,以便只有连接并发出请求的套接字才能收到响应。

因此,如果我有 500 台通过 socket.io 发起连接的客户端计算机,那么每台计算机都会有自己的套接字。为了确保房间是唯一的,我在所有 500 个房间中都使用了一个 guid。当然,如果应该只为特定房间的一个套接字评估发射,我不希望所有套接字都接收流量......

有什么想法吗?

【问题讨论】:

    标签: node.js sockets socket.io


    【解决方案1】:

    如果我正确理解了您的问题,您是否希望将信息发送到该 1 个套接字?

    大概是这样的:

    socket.broadcast.to(socketId).emit('someeventname', eventData);
    

    如果您打开了与该客户端的连接,这意味着您通过 socket.id 获得了他们的套接字ID。您可以仅向该套接字发出事件。

    【讨论】:

    • @user3597741 如果它有资格作为答案,我将不胜感激。
    猜你喜欢
    • 1970-01-01
    • 2018-05-07
    • 1970-01-01
    • 2021-03-02
    • 1970-01-01
    • 2017-05-22
    • 1970-01-01
    • 2019-03-02
    • 2011-12-02
    相关资源
    最近更新 更多