如果我做console.log(套接字),我在firebug中得到一个套接字对象。在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。
答案 0 :(得分:5)
Socket.io需要一些时间来建立连接。我发现在客户端获取ID的最佳方式是:
socket.on('connect', () => {console.log(socket.id)});
'连接'是连接准备就绪时发出的系统事件。
(我目前的socket.io版本是1.7.2)
答案 1 :(得分:0)
设置端口Lister并通过匿名函数'http://localhost:8000'获取ID
this.socket = io('http://localhost:8000');
this.socket.on('connect' , () => {
console.log(this.socket.id);
});