Socket.io 1.0将用户信息存储在套接字中

时间:2014-06-06 18:32:52

标签: security socket.io

socket.user对客户端是可读的还是在传输中?还是保密?

io.use(function(socket, next) {
    //handshake ok
    socket.user = ourUserData;
});

io.on('connection', function(socket){
    socket.emit('hello', 'cool');
});

1 个答案:

答案 0 :(得分:4)

保持私密。服务器socket对象仅共享您使用emit或类似方法明确发送给客户端的数据。

但是,我不会用我自己的数据填充socket对象,因为它可能会让其他队友感到困惑。相反,我会创建一个新对象,例如usersData,其中套接字ID作为键,数据作为值。

以下是一个例子:

var usersData = {};
io.use(function(socket, next) {
    //handshake ok
    usersData[socket.id] = ourUserData;
    next();
});

io.on('connection', function(socket){
    socket.emit('hello', 'cool');
    //do something with usersData[socket.id]

    //don't forget to delete the disconnected user's data
    socket.on('disconnect', function() {
        delete usersData[socket.id];
    });
});

希望这有帮助。