node.js - 如何使用socket io发送私有(private)消息?

标签 node.js socket.io

我对套接字 io 很困惑,我应该如何发送私有(private)消息

方法一

socket.emit(`privateMessage:${req.user._id}`, 'someones Private message to User')

并且在客户端中我收到此带有用户 ID 的消息

方法二

socket.to(socketID).emit(`privateMessage`, 'someones Private message to User')

我不知道哪种标准方法可以做到这一点,而且我也在使用 redis pub sub。我很困惑如何将这些与标准架构结合起来

最佳答案

如果您有目标用户的 socket 对象,那么要仅向该用户发送消息,您应该使用:

socket.emit(...)

如果您没有目标用户的socket对象,但有该用户的socketID,那么您可以使用:

io.to(socketID).emit(...)

确实没有理由使用 socket.to(socketID),其中 socketID 是 socket 的 id,因为您已经拥有 socket 对象对于目标用户来说,socket.emit() 更直接,而且可能稍微快一些。

关于node.js - 如何使用socket io发送私有(private)消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46691313/

相关文章:

javascript - 使用 node-jose,如何解密刚刚加密的数据?

javascript - JavaScript 中的所有事件监听器如何保持事件状态?

node.js - 如何复制 Google 表格并进行数据验证以保持完整?

javascript - 使用 Javascript 在 Socket IO 和 NodeJS 中查找数组中的对象

node.js - 使用 Socket.io 构建 Web 应用程序以支持团队协作

javascript - 如何正确取消订阅 socket.io 房间并销毁它?

javascript 根据搜索词查找对象

javascript - POST 请求未将文件上传到服务器

javascript - 在 socket.io 上发送许多小数据包或一个大数据包是否存在相关差异?

javascript - 将socket.io逻辑与服务器文件分离并访问逻辑文件中的io.sockets