如何使用socket io发送私信?

时间:2017-10-11 14:48:52

标签: node.js socket.io

我对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。我很困惑如何在标准架构中将它们联系起来

1 个答案:

答案 0 :(得分:3)

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

socket.emit(...)

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

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

我没有理由使用socket.to(socketID),其中socketID是socket的id,因为您已经拥有目标用户的socket对象,因此socket.emit()更直接,可能会稍快一些。