【发布时间】:2014-05-06 18:23:30
【问题描述】:
我只是从 socket.io 和 node.js 开始。我有一些用于向特定客户端发送消息的代码:
io.sockets.sockets[receiverssocket2].emit('message',
{"source": sendersusername,
"message": msg.message,
"target": msg.target});
我从 pgsql 服务器获取接收者套接字 ID。有时更新需要一点时间,所以当用户断开连接时,receiver2 仍然存在,并且会向特定的套接字 id 发出一条消息,由于套接字不存在,因此会出错。 有没有办法可以检查套接字 id 是否存在然后发出消息? 我可以获取已连接套接字的列表并检查它是否存在于数组中,但这可能需要一些时间。
【问题讨论】:
-
为什么要在数据库中存储套接字 ID?
-
每个用户名我有 2 个套接字 ID(2 个设备),我也有两个从其他地方访问套接字 ID
-
一个更简单的设计是让每个连接的设备向服务器询问信息,然后您可以回复。如果设备未连接,它不会询问。要回答您的问题,您无法知道套接字是否打开。
-
我只是在没有检查数据库的情况下完成了它。谢谢您的回复