我对socket io很困惑,我该如何发送私信
方法一
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。我很困惑如何在标准架构中将它们联系起来
答案 0 :(得分:3)
如果您拥有目标用户的socket
对象,那么只需向该用户发送消息,您应该使用:
socket.emit(...)
如果您没有目标用户的socket
对象,但确实有该用户的socketID,那么您可以使用:
io.to(socketID).emit(...)
我没有理由使用socket.to(socketID)
,其中socketID是socket
的id,因为您已经拥有目标用户的socket
对象,因此socket.emit()
更直接,可能会稍快一些。