NodeJs Socket.io 房间
Posted
技术标签:
【中文标题】NodeJs Socket.io 房间【英文标题】:NodeJs Socket.io Rooms 【发布时间】: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。当然,如果应该只为特定房间的一个套接字评估发射,我不希望所有套接字都接收流量......
有什么想法吗?
【问题讨论】:
【参考方案1】:如果我正确理解了您的问题,您是否希望将信息发送到该 1 个套接字?
大概是这样的:
socket.broadcast.to(socketId).emit('someeventname', eventData);
如果您打开了与该客户端的连接,这意味着您通过 socket.id
获得了他们的套接字ID。您可以仅向该套接字发出事件。
【讨论】:
@user3597741 如果它有资格作为答案,我将不胜感激。以上是关于NodeJs Socket.io 房间的主要内容,如果未能解决你的问题,请参考以下文章