将数据添加到socket.io套接字对象

Fos*_*tah 7 node.js socket.io

我试图在连接上向我的套接字对象添加一些自定义信息,这样当我断开套接字时,我可以读取该自定义信息.

IE:

// (Client)
socket.on('connect', function(data){
  socket.customInfo = 'customdata';
});

// (server)
socket.on('disconnect', function () {
  console.log(socket.customInfo);
});
Run Code Online (Sandbox Code Playgroud)

fre*_*ish 7

由于它是JavaScript,您可以自由地向任何对象添加属性(就像您一样).但是socket.io确实为您提供了内置的方法(因此您不必担心命名冲突):

socket.set('nickname', name, function () {
  socket.emit('ready');
});

socket.get('nickname', function (err, name) {
  console.log('Chat message by ', name);
});
Run Code Online (Sandbox Code Playgroud)

请注意,这仅在一侧(客户端或服务器).显然,如果没有通信,您无法在客户端和服务器之间共享数据(这就是您的示例所示).

插座在浏览器和插座,如果您设置的服务器将不会共享相同的属性.基本上,您只在客户端设置数据(在浏览器内存中,而不是在服务器上).

  • 这个版本在1.0版本中不再有效吗? (4认同)
  • 显然不是.我正在使用socket.io 1.3.4 (4认同)