Socket.io 通过 id 获取套接字不起作用
Posted
技术标签:
【中文标题】Socket.io 通过 id 获取套接字不起作用【英文标题】:Socket.io get socket by id not working 【发布时间】:2016-07-24 06:56:37 【问题描述】:我正在尝试通过其 ID 访问套接字。我看过this 和this *** 帖子。然而,
io.sockets.connected[socket.id]
返回未定义。
这也行不通:
io.to(socket.id).emit("myMessage");
Socket 连接到一个命名空间(socket.id 返回 /playNS#1HhBtUM-6O_YsRwmAAAF)并且 socket.io 版本是 1.4.5。我做错了什么?
【问题讨论】:
应该可以正常工作——我在 github 项目中有类似的代码,我唯一要做的就是跟踪对象中的 socketID 和 sessionID 【参考方案1】:如果套接字连接到命名空间,socket.id 的第一部分包含该命名空间(例如 /playNS#1HhBtUM-6O_YsRwmAAAF
),但该套接字的 io.sockets.connected
属性将是 /#1HhBtUM-6O_YsRwmAAAF
为了正确检索我使用io.of('/namespace').connected[socket.id]
的套接字。
同样,io.of("/namespace").to(socket.id).emit("myMessage");
发送消息
【讨论】:
以上是关于Socket.io 通过 id 获取套接字不起作用的主要内容,如果未能解决你的问题,请参考以下文章
当存储在变量中时,Socket.io 发射到 socket.id 不起作用
使用 Socket.io 在 React Native 移动应用程序中不起作用