将消息发送到唯一的套接字

我正在使用node.js和socket.io创build一个聊天应用程序。 如何将消息发送到另一个套接字,我只知道套接字的id或用户名。 没有房间,客户一对一聊天。

使用Socket.IO,您不仅限于在连接函数的callback中使用套接字对象。 您可以创build一个对象,该对象存储特定用户名的套接字对象,并查找套接字以在客户端发出消息时发送消息。 您需要传送每个消息的预定目标。

例:

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); }); }); 

请参阅Socket.IO网站的示例页面上的更多示例。

你可以像这样检查所有套接字的用户名属性:

 socket.on('send message', function(message,to){ io.sockets.clients().forEach(function (socket) { if (socket.username==to){socket.emit(message);} }); });