node.js - Socket.io 通过 id 获取套接字不起作用

标签 node.js socket.io

我正在尝试通过套接字的 ID 来访问它。我见过thisthis堆栈溢出帖子。然而,

io.sockets.connected[socket.id]

返回未定义。

这也不起作用:

io.to(socket.id).emit("myMessage");

Socket 连接到命名空间(socket.id 返回/playNS#1HhBtUM-6O_YsRwmAAAF),socket.io 版本为 1.4.5。我做错了什么?

最佳答案

如果套接字连接到命名空间,则 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");发送消息

关于node.js - Socket.io 通过 id 获取套接字不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36407645/

相关文章:

javascript - 如何使用基于 promise 的 node.js 编码区分编程错误和操作错误?

mysql - 在哪里结束nodejs上的mysql池连接?

javascript - 如何在使用JAVA加密的nodejs中解密

node.js - 为什么要选择独立的 socket.io 服务器、Express 和 Node http?

java - Gottox socket.io-java-client “握手时出错,由 : java. io.FileNotFoundException : http://192. 168.1.69 :8080/socket. io/1/引起

python - 当 websocket 连接发生时, session 变量值不会更新 - Python

node.js - Node JS html 游戏

javascript - 运行 node.js 文件时出现语法错误

php - 如何比较 Node.js 与 Apache 上的 PHP 的性能

node.js - nodejs 和 socket.io.js 路径解析