使用套接字发送到特定客户端



我试着做一个小的聚会系统,只是为了练习插座,我遇到了一个障碍,基本上我对这个聚会系统的方法就是

在页面加载时,请求用户名,用新用户名填充所有客户端,这是一个锚与他们的用户名id,当锚被点击时,发送特定的客户端请求邀请他们参加聚会。

我几乎已经得到了发送链接的部分,到目前为止,我有:

socket.on('adduser', function(username) {
  socket.username = username;
  socket.clientId = socket.id;
  usernames[username] = username;
  console.log(socket.id);
  socket.emit('updatechat', 'SERVER', 'You have connected.');
  io.sockets.emit('updateusers', usernames);
  console.log(usernames);
});

用于创建新用户和

socket.on('updateusers', function(data) {
  var users = document.getElementById('users');
  users.innerHTML = '';
  for (var key in data) {
    var a = document.createElement('a');
        a.id = key;
        a.href='#';
        a.innerHTML = key;
    users.appendChild(a);
    users.appendChild(document.createElement('br'));
    document.getElementById(key).addEventListener('click', function() { 
      inviteUser.call(this); 
    });
  }
});
客户端

我只是对如何将emit发送给特定用户而不是每个人感到困惑,

通常我会socket.emit发送一个emit给请求什么的用户,但现在我需要发送给其他人

我正在考虑存储一个套接字。id转换为对象,并将请求发送到与用户名匹配的id,但是如何发送到特定的id呢?

TL;DR:我如何发送一个发射到一个特定的socket.id,这样只有他们得到请求。

谢谢大家:)

你必须抓住客户端,你可以用简单的方法:

var io = io.listen(server);
io.clients[sessionID].send();

它可能会破裂,我几乎不怀疑,但它总是有可能。客户端可能会被更改,所以要小心使用上面的

或者您自己跟踪客户端,因此您可以在连接侦听器中将它们添加到您自己的客户端对象中,并在断开侦听器中删除它们。

相关内容

  • 没有找到相关文章

最新更新