Node.js 我可以给nodejs中连接的套接字提供我自己的id吗

Node.js 我可以给nodejs中连接的套接字提供我自己的id吗,node.js,Node.js,我正在尝试实现一个多用户通信应用程序。我想用用户的id标识用户的套接字,所以我可以将套接字的id设置为用户的id吗 socket.id=user.userId; 您可以这样做,但使用的属性不会与Node.js或任何其他框架键冲突 socket.myappsuperuserid = user.userId; 这里 客户端 var socket = io.connect(); socket.on('connect', function () { console.lo

我正在尝试实现一个多用户通信应用程序。我想用用户的id标识用户的套接字,所以我可以将套接字的id设置为用户的id吗

socket.id=user.userId;

您可以这样做,但使用的属性不会与Node.js或任何其他框架键冲突

socket.myappsuperuserid = user.userId;
这里

客户端

var socket = io.connect();
     socket.on('connect', function () {
          console.log("client connection done.....");
          socket.emit('setUserId','random value');
});
在服务器端

io.sockets.on('connection', function (socket) {
       socket.on('setUserId',function(uId){
             socket.userId = uId;
        });
});
这可能会帮助…

这可能会帮助你

io.sockets.on('connection', function (socket) {    
    console.log("==== socket  ===");
    console.log(socket.id);
    socket.broadcast.emit('updatedid', socket.id);
});
您可以在客户端保存套接字id。当您想要1-1信息(私人聊天)时,请使用更新的套接字id。例如:

io.sockets.socket(id).emit('private message', msg, mysocket.id) 

在socket.io中,当用户连接时,socket.io将生成一个唯一的socket.id,它基本上是一个随机唯一的不可用id。我要做的是在连接后调用socket.join('userId')。基本上,这里我用我的用户ID为这个套接字分配了一个房间。然后,每当我想向这个用户发送一些东西时,我都会使用这个io.to(userId.emit('my message','hey there?')。
希望有帮助。

非常感谢。稍后,我如何根据myappsuperuserid找到此特定套接字并发出事件使用反向查找var some_tbl[user.userId]=套接字请记住在套接字关闭后将其从表中删除,以免泄漏内存这很好,谢谢。但是,如何基于uId获取此套接字,并仅向组中的此套接字发送事件