2017-10-11 53 views
0

我很困惑与插座的IO应该怎么能发送悄悄话如何发送私人消息与套接字io?

一种用法

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

,并在客户端我与用户ID收到此消息

方法二

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

我不知道哪个是标准方法来做到这一点,我也使用redis酒吧子。我很困惑浩w至绑在这些标准架构

回答

2

如果您对目标用户的socket对象,然后发送消息只是为了用户,你应该使用:

socket.emit(...) 

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

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

实在没有理由使用socket.to(socketID)其中socketID是socket的ID,因为你已经有了socket目标用户的对象,因此socket.emit()更直接,可能稍快。

+0

太棒了!谢谢但是,有一个问题''''''''''''''''''''''你提到用户标识或者与用户权限有关的东西? – Nane

+1

@Nane - 当用户连接时,他们得到一个套接字对象 - 一个实际的Javascript对象,表示连接。在'io.on('connection,function(socket){});'它们连接时提供给你。我在说,如果你已经拥有目标用户的套接字对象(因为你保存了它或者你从那个套接字得到了一些其他的消息,或者你有了它),你可以使用'socket.emit()'。如果没有,你可以通过'io.to(socketID).emit()'来请求socket.io库来查找它。 – jfriend00

相关问题