我使用node.js和socket.io来创建聊天应用程序。如何将消息发送到另一个套接字,我只知道套接字的id或用户名。没有房间,客户一对一聊天。
答案 0 :(得分:25)
使用Socket.IO,您不仅限于在连接函数的回调中使用套接字对象。您可以创建一个对象来存储特定用户名的套接字对象,并查找套接字以在客户端发出消息时向其发送消息。您需要在每条消息中传输预期的目标。
示例:
var sockets = {};
...
io.on('connection', function(socket){
socket.on('set nickname', function (name) {
sockets[name] = socket;
});
socket.on('send message', function (message, to) {
sockets[to].emit(message);
});
});
查看examples page of Socket.IO's website上的更多示例。
答案 1 :(得分:0)
您可以检查所有套接字的用户名属性,如下所示:
socket.on('send message', function(message,to){
io.sockets.clients().forEach(function (socket) {
if (socket.username==to){socket.emit(message);}
});
});