node.js - 向 socket.io 套接字对象添加数据

标签 node.js 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);
});

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

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

关于node.js - 向 socket.io 套接字对象添加数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17351881/

相关文章:

javascript - JSDOM 从字符串中删除尾随的新行和空格

node.js - Azure托管 Node 应用程序找不到模块 'async/each'

java - Redis Replication和Cluster区别

node.js - 如何制作socket io | node.js - 使用 SSL

node.js - Docker Socket.IO 仅适用于 docker run -it 标志

socket.io - 如何将 socket.io 与 graphql 订阅一起使用?

javascript - 在 Express 4 和 express-generator's/bin/www 中使用 socket.io

Qt Desktop 使用 Node.js 和 Socket.io 监听端口

node.js - Rethinkdb竞争条件创建表

node.js - 更新 mongoose 模型中的一个字段 (node.js)