是这样的, 想搞一个一对一聊天, 因为刚接触ws,不懂, 看到老师用io.sockets.sockets.get(socketid),原来是获取到map集合,再get得到其中一个
获取到那个socket,然后再emit.例如这样
const targetSocket = io.sockets.sockets.get(targetId)//获取socket再发送
targetSocket.emit('receive', {
formUsername,
toUsername: toUser.username,
msg,
dateTime: new Date().getTime()
})
也有几个外国人的讨论
https://github.com/socketio/socket.io/issues/1618
用 socket.to(SocketId).emit();也是可以解决的,参考文档如下
![](https://img-blog.csdnimg.cn/img_convert/47c1084322d17dbbb1c323fe0fdd6188.png)
//找到要发送的用户信息
const toUser = userList.find(user => user.id == targetId)
socket.to(targetId).emit('receive', {
formUsername,
toUsername: toUser.username,
msg,
dateTime: new Date().getTime()
})