我试图制作一个小小的派对系统只是为了练习套接字,我已经陷入困境,基本上我的方法就是这个派对系统只是
在页面加载时,请求输入用户名,使用新用户名填充所有客户端,这是一个具有用户名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);
});
}
});
为客户端
我对如何将发射物发送给特定用户而不是每个人感到困惑,
通常我会socket.emit
向请求任何内容的用户发送一个发射,但现在我需要发送给其他人
我在考虑将socket.id存储到对象中并将请求发送到与用户名匹配的id,但是如何将其发送到特定ID?
TL; DR :如何向特定socket.id
发送一个发送内容,以便他们只能收到请求。
谢谢你们:)
答案 0 :(得分:-1)
那么你必须抓住客户端,你可以采用简单的方法:
var io = io.listen(server);
io.clients[sessionID].send();
哪个可能会破坏,我几乎不怀疑它,但是io.clients总是有可能被改变,所以谨慎使用上面
或者您自己跟踪客户端,因此您将它们添加到连接侦听器中的自己的客户端对象中,并在断开连接侦听器中将其删除。