我是socket.io的新手,我试图区分连接到我的节点服务器的每个客户端。
我想只向一个客户端发送数据,而不是向所有客户端广播相同的数据。所以,我必须为每个客户找到一个独特的部分。
如果我得到了,我必须做一些类似的事情
io.on('connection', function (socket) {
var origin = socket.request;
console.log("hey, so , new ws connection is > "+origin);
});
但我得到了[object, Object]
。
这个对象的内容是什么,这样我就可以获得像id这样唯一的东西。这个对象还包含哪些其他数据,将来可能会派上用场?
感谢
更新
我看到了socket.id。但是,每次刷新时,id都会更改。我希望某些东西是稳定的,否则如果客户端出于某种原因刷新,将不再与第一个id相关。有什么提示吗?
每个连接都有socket.id
是唯一的,如果您使用套接字io适配器,则可以使用套接字握手信息。在浏览器上获取套接字。我尝试
$(function () {
setTimeout(function () {
$("#socketId").val(socket.id);
},100);
});
如果console.log,您将在未来的中看到socket.id
您可以使用socket.id属性来获取套接字(客户端套接字)的唯一标识符。至于这个对象包含的其他数据,有很多有用的数据,但有用性取决于应用程序。请查看以下链接,了解套接字对象上的可用属性/方法。http://socket.io/docs/server-api/
一些非常有用的方法是emit、join、leave、to、in,属性包括id和rooms。