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

时间:2013-06-27 19:43:09

标签: node.js socket.io

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

IE:

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

// (server)
socket.on('disconnect', function () {
  console.log(socket.customInfo);
});

1 个答案:

答案 0 :(得分:7)

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

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

socket.get('nickname', function (err, name) {
  console.log('Chat message by ', name);
});

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

如果您设置了浏览器中的套接字,并且服务器中的套接字将不会共享相同的属性。 基本上,您只在客户端设置数据(在浏览器内存中,而不是在服务器上)。