如果页面上有一个按钮,并且您想确保在另一个套接字单击其按钮之前无法再次单击该按钮。
如果套接字 a 单击了,我应该禁用该按钮,直到另一个套接字发送一条消息表明他们单击了按钮,然后返回第四个。
$(".buttonTurns").on("click", function(){
socket.emit("turnbutton click")
})
并且他们在连接时不输入任何名称
最佳答案
每个socket.io session 都会自动分配一个唯一的字符串作为id。在服务器上,您可以从以下位置获取它:
socket.id
如果您处于 session 内部(即返回套接字对象的连接),您只需执行以下操作即可将消息发送回客户端:
socket.emit('event name',data);
但是如果您想向不同的 session 发送消息,那么您需要执行以下操作:
io.sockets.socket(socket_id).emit('event name',data);
如果您想向所有连接的 session 发送消息,则只需执行以下操作:
io.emit('event name', data); // broadcast
<小时/>
如果您的应用程序有需要管理的状态,那么一种技术是将它们存储在使用套接字 id 作为键的对象中:
var buttonState = {}
io.on('connection',function('socket'){
// default button to off when socket connects:
bottonState[socket.id] = 'off';
socket.on('on button',function(){
bottonState[socket.id] = 'on';
})
socket.on('off button',function(){
bottonState[socket.id] = 'off';
})
})
现在您可以管理服务器上每个单独客户端的单独状态,您可以使用它与其他客户端进行通信。
关于javascript - 如何使用 socket.io 判断哪个套接字连接单击了按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31911606/