socket.io onconnect发送额外数据

时间:2016-04-12 19:04:21

标签: node.js socket.io

我正在使用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);

但是我得名字:未定义

1 个答案:

答案 0 :(得分:1)

您在代码的哪一部分检查name属性的值?您提供的代码将首先将undefined的值分配给clients[socket.id].name,因为socket.username尚未定义。调用on("username")事件后,它会将值赋给socket.username。如果你在消息回调中添加console.log(data)你会得到什么?