socket.user对客户端是可读的还是在传输中?还是保密?
io.use(function(socket, next) {
//handshake ok
socket.user = ourUserData;
});
io.on('connection', function(socket){
socket.emit('hello', 'cool');
});
答案 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];
});
});
希望这有帮助。