首页 > 解决方案 > NodeJs Socket.io 房间

问题描述

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

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

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

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

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

有任何想法吗?

标签: node.jssocketssocket.io

解决方案


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

也许是这样的:

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

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


推荐阅读