Node.js 是否有使用Socket.io(1.0+;)发送私人消息的替代方法?

Node.js 是否有使用Socket.io(1.0+;)发送私人消息的替代方法?,node.js,socket.io,Node.js,Socket.io,我正在开发一个简单的基于会话的应用程序,由URL中的会话代码共享。我决定为每个连接到套接字的客户机生成并分配一个较短的用户友好的唯一ID,创建会话的客户机将使用其ID创建一个socket.io文件室 直到后来我才意识到socket.io中的私有消息传递机制依赖于将每个客户端分配到一个以其ID命名的房间。这意味着,由于会话的房间是以创建者的套接字ID命名的,因此使用。to()将不会向该客户端发送消息,而是向现在分配到该房间的所有客户端发送消息 我可以用一些需要重新设计的方法来解决这个问题,但首先我

我正在开发一个简单的基于会话的应用程序,由URL中的会话代码共享。我决定为每个连接到套接字的客户机生成并分配一个较短的用户友好的唯一ID,创建会话的客户机将使用其ID创建一个socket.io文件室

直到后来我才意识到socket.io中的私有消息传递机制依赖于将每个客户端分配到一个以其ID命名的房间。这意味着,由于会话的房间是以创建者的套接字ID命名的,因此使用
。to()
将不会向该客户端发送消息,而是向现在分配到该房间的所有客户端发送消息

我可以用一些需要重新设计的方法来解决这个问题,但首先我想问一下,是否有其他方法可以通过特定客户的ID向其发送消息

/*create an array of clients, where key is the name of user and value is its unique socket id(generated by socket only, you do not have to generate it) during connection.*/
var clients = {};
clients[data.username] = {
"socket": socket.id
};
//on server side
socket.on('private-message', function(data){
  io.sockets.connected[clients[data.username].socket].emit("add-      message", data);
});
//on client side
socket.emit("private-message", {
"username": userName,
"content": $(this).find("textarea").val()
});
socket.on("add-message", function(data){
notifyMe(data.content,data.username);
});