为什么在浏览器中未定义socket.id

如果我做console.log(套接字)我得到一个套接字对象在萤火虫。 在obj中,我可以看到一个id的属性,我可以看到id的值。 但是当我做console.log(socket.id)我得到未定义。 为什么?

  var socket = io(); $(document).ready( function(){ console.log(socket); console.log(socket.id); console.log(socket.ids); $(".click").on("click", function(e){ alert("clicked") socket.emit("clicked", socket.id) $(this).addClass("removeclick"); }) }); 

PS我可以得到socket.ids是0,但不是socket.id。

Socket.io需要一些时间来build立连接。 我发现在客户端获得ID的最佳方式是:

 socket.on('connect', () => {console.log(socket.id)}); 

“连接”是连接准备就绪时发出的系统事件。

(我目前的socket.io版本是1.7.2)