我正在使用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
答案 0 :(得分:0)
您可以访问已连接的客户端,并根据您需要的标准对其进行过滤。 IIRC,如果您的身份证件恰好是io.sockets.sockets[socket_id]
另一种方法是保留自己的会话记录。这意味着您可以使用您在每个连接上确定自己的密钥进行索引。一个例子:
var clientConnections = {};
sio.on('connection', function (socket) {
var key = <something unique, maybe based on socket.handshake data>;
clientConnections[key] = socket;
}
然后您可以通过clientConnections哈希来访问其他地址的套接字引用:clientConnections[<some key]
。
一旦你有了这个引用,你应该能够像操作回调一样操纵套接字。