gpt4 book ai didi

javascript - Socketio 1.0 从所有客户端获取属性

转载 作者:行者123 更新时间:2023-12-02 14:14:52 25 4
gpt4 key购买 nike

我目前正在开发一个简单的socketio应用程序,其中我向事件发送一些参数,并将它们存储到每个套接字中。

socket.on('add user', function (data) {
if (addedUser) return;

// we store the username in the socket session for this client.
socket.nickname = data.nickname;
socket.userId = data.userId;
...

然后我使用 var io.engine.clients 获取所有 socketio 客户端,并且我尝试在其他事件中获取该参数,如下所示:

socket.on('new message', function (data) {

var clientsRoom = io.engine.clients;

for(var c in clientsRoom){
console.log(" Client: " + c.userId); //Error
console.log(" Client: " + c); //outputs the socket ID
console.log(" Client: " + c['userId']); //Error
}
...

但我无法获取之前为所有套接字存储的用户 ID。 ¿我做错了什么?

谢谢。

最佳答案

您应该使用 io.sockets.sockets 而不是 io.engine.clients(它们不同,socket.io) > 在 engine.io 之上添加一个额外的层)。还要确保将其视为对象,而不是数组:

var clientsRoom = io.sockets.sockets;

for (var id in clientsRoom) {
var c = clientsRoom[id];
console.log(" Client: " + c.userId);
console.log(" Client: " + id);
}

关于javascript - Socketio 1.0 从所有客户端获取属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39120324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com