在socket.io中获取邮件发件人的客户端ID?

时间:2011-09-22 18:26:50

标签: node.js socket.io

在服务器端我得到了

socket.on('chat', function (data) {
    io.sockets.socket(data.clientid).emit('chat', {
        msg: data.msg,
        senderid : senderid
    });
});

如果发件人不必通过邮件发布他们的clientid,我怎样才能获得发件人?

2 个答案:

答案 0 :(得分:22)

事实证明我可以使用通过msg发送用户的socket.id来获取他们的clientid,例如:

  socket.on('chat', function (data) {
      io.sockets.socket(data.clientid).emit('chat', {
          msg: data.msg,
          senderid : socket.id
      }); 
  });

最初我以为我可以通过这样做来获取clientid:

  io.sockets.on('connection', function (socket) {
     clientid = socket.id;

但是clientid将是最后一个在这种情况下连接的人,而不是通过聊天发送的最后一个人

答案 1 :(得分:0)

我建议发送一个用户名(确保它是唯一的),并在客户端ID中保留一个与用户名关联的对象。