我正在使用socket.io,目前一切都很棒,但我想将数据发送到特定客户端。但是我不确定如何获得sed客户端套接字ID。我想发送关于连接的额外数据。
我试过了:
if (steamID != "" && steamName != "") {
socket.emit("username", {
socketData: {
name: steamName
}
});
}
和服务器端:
socket.on('username', function (data) {
socket.username = data.socketData.name;
});
clients[socket.id] = {
id: socket.id,
ip: socket.request.connection.remoteAddress,
name: socket.username
cons
}
console.log(clients);
但是我得名字:未定义
答案 0 :(得分:1)
您在代码的哪一部分检查name
属性的值?您提供的代码将首先将undefined的值分配给clients[socket.id].name
,因为socket.username
尚未定义。调用on("username")
事件后,它会将值赋给socket.username
。如果你在消息回调中添加console.log(data)
你会得到什么?