一尘不染

如何使用socket.io向特定客户端发送消息

node.js

我从socket.io +
node.js开始,我知道如何在本地发送消息和广播socket.broadcast.emit()功能:-所有连接的客户端都收到相同的消息。

现在,我想知道如何向特定的客户端发送私人消息,我的意思是一个套接字,用于2个人之间的私人聊天(客户端到客户端流)。谢谢。


阅读 760

收藏
2020-07-07

共1个答案

一尘不染

当用户连接时,它应使用唯一的用户名(例如电子邮件)向服务器发送消息。

一对用户名和套接字应存储在这样的对象中:

var users = {
    'userA@example.com': [socket object],
    'userB@example.com': [socket object],
    'userC@example.com': [socket object]
}

在客户端上,使用以下数据向服务器发送对象:

{
    to:[the other receiver's username as a string],
    from:[the person who sent the message as string],
    message:[the message to be sent as string]
}

在服务器上,侦听消息。收到消息后,将数据发送到接收方。

users[data.to].emit('receivedMessage', data)

在客户端上,侦听来自称为“ receivedMessage”的服务器的发射,通过读取数据,您可以处理其来源和发送的消息。

2020-07-07