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

我想在连接上添加一些自定义的信息到我的套接字对象,以便当我断开套接字,我可以读取自定义信息。

IE:

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

既然是JavaScript,你可以自由地将属性添加到任何对象(就像你一样)。 不过,socket.io确实为您提供了一个内置的方法来实现这一点(所以您不必担心命名冲突):

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

请注意,这只是一方(客户端或服务器)。 显然你不能在没有通信的情况下在客户端和服务器之间共享数据(这就是你的例子所build议的)。

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