套接字IO:检索特定连接客户端套接字的最佳方法
Socket IO : Best way to retrieve socket of specific connected client
我正在尝试使用MEAN Stack建立一个聊天服务器(不使用redis),它使用套接字。IO用于启用实时聊天。对于私人消息传递,我想实现socket.io内置的"房间"功能。流程如下:
User1想要开始与User2的对话,因此User1发出一个事件,服务器捕获该事件。在服务器上,我将这个对话存储在数据库中,并将User1连接到一个房间。如果User2在线,那么我将User2也加入到这个房间。为了实现这一步,我需要访问User2的套接字。经过大量的研究,我发现这个方法可以将每个连接用户的"套接字"存储在数组(或字典)中。我想知道是否有任何其他方法来检索套接字,而不是将其存储在数组中。
不,没有更好的方法,除非你为两个用户使用不同的命名空间,但我认为这不是你的情况。
几年前,我使用faye实现了一个基本的POC(概念证明)。
在我的例子中,我为活跃用户创建了一个唯一的通道。日志含义通道名与mongo (_id)中的唯一用户标识相同。这使我可以向正确的用户发送消息,而不必存储有关他们的连接的信息。
请注意,我没有做任何性能测试,你需要有很多连接打开。
我使用faye做了一个类似的实现,通过广播到频道,在这种情况下,我在数据库中存储连接到特定频道的人
相关文章:
- 套接字服务器向客户端广播,但不从两者接收
- 无法从客户端发出套接字消息
- 套接字io客户端网络::ERR_CONNECTION_REFUSED
- 在通过套接字发送到客户端之前压缩中等大小的javascript数组是否值得
- 如何检测套接字何时在客户端上打开
- 使用sails.js中的beforeConnect函数获取客户端套接字
- Nodejs - 让客户端套接字在 5 秒超时后重试
- Java 脚本 Web 套接字客户端无法正常工作
- sails 客户端(浏览器)如何侦听从不同端口发出(爆破)的套接字消息
- 运行 Web 套接字客户端编程
- 在客户端对 Web 套接字进行编程
- 套接字 - 客户端站点上不显示任何数据
- 简单的安卓套接字客户端
- 谁在套接字(服务器端)上正确管理mongodb数据
- 它'在unityjs脚本中使用javascript套接字客户端是可能的.
- Web套接字客户端JavaScript
- 我如何断开套接字服务器端和客户端在套接字.io 1.0
- 在socket.io上关闭套接字服务器端
- 用python编写的类似javascript的TCP套接字客户端
- 套接字服务器未与JavaScript套接字客户端连接