如何更改其他用户的套接字属性



我正在使用nodejs+socket.io并进行聊天。每个用户在进入聊天时,都会将一些数据发送到他的socket。例如:

module.exports = function(io) {
    var chat = io.of('/chat').on('connection', function (socket) {
        socket.on('start-chat', function(data) {
            socket.user_name = data.name;
        }
    });
}

问题:一个用户如何更改另一个用户的socket属性?例如,我需要更改其他用户socket.user_name,使其socket.id

您可以访问连接的客户端,并根据您需要的条件对它们进行筛选。IIRC如果你碰巧有io.sockets.sockets[socket_id] 的ID,你也可以直接通过ID访问它们

另一种方法是保留自己的会话记录。这意味着你可以使用一个键进行索引,这个键可以在每次连接时确定你自己。一个例子:

var clientConnections = {};
sio.on('connection', function (socket) {
    var key = <something unique, maybe based on socket.handshake data>;
    clientConnections[key] = socket;
}

然后,您可以通过clientConnections散列访问套接字引用else-where:clientConnections[<some key]

一旦有了该引用,就应该能够像处理事件回调的主题一样处理套接字。

相关内容

  • 没有找到相关文章

最新更新