我正在尝试构建一个小型聊天应用程序,我可以发送私人消息(不向所有人广播)。到一个选定的socketid。我浏览了SockeIO的文档,可以找到一个有效的解决方案。该应用程序运行良好,因为我使用广播事件测试它,所有连接的套接字接收发出的消息。如何实现个人消息传递?。
这是我试过的代码。
socket.to(sockets[data.receiver]).emit('receive',data.message);
我使用 socket.to()。emit('嘿','我刚认识你'); socketio docs和socket中给出的例子[data.receiver]给出了要发送消息的人的socket.id。
答案 0 :(得分:0)
考虑以下内容:
class Connection {
constructor(name, socket) {
this.name = name;
this.socket = socket;
}
}
let connections = [];
socket.on('connection', (socket) => {
// Get a name for the user/connection
// ...
// let name = getUsername(socket);
connections.push(new Connection(name, socket));
});
let sendToName = (name, message) => {
for(let i = 0, len = connections.length; i < len; i++) {
if(connections[i].name === name) {
connections[i].socket.emit('message', message);
break;
}
}
};
当然,你可以使用名称以外的东西......但你明白了。