node.js - 如何在 socket.io 中获取多个套接字属性?

标签 node.js socket.io

我正在构建一个聊天应用程序,对于每个客户端连接,我都需要使用 socket.io 为每个客户端实例设置一些属性。当我保存属性时,我使用:

client.set('name', name, function () {});
client.set('email', email, function () {});
....

它运行良好。 当我需要获取所有客户端属性时,我还没有找到比这更好的方法:

client.get("name",function(err,name) {
    client.get("email",function(err,email) {
       .......
    }
}

我需要嵌套所有的“get”来异步获取数据;但是如果我有 10 个属性要获取,我是否需要嵌套所有 10 个项目?一定有更好的方法,谁能帮帮我?

最佳答案

我没有将属性附加到套接字。

 io.sockets.on('connection', function(socket) {
  var username = "xx";
  var email = "xx";

  socket.on('doX', function(data) {
    socket.emit('ackX', {username: username, email: email});
  });
});

我不知道这是不是最好的解决方案,但我见过很多这样的例子。

编辑:socket.io - getting more than one field for a socket? 正确答案可能符合您的需求

关于node.js - 如何在 socket.io 中获取多个套接字属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16559991/

相关文章:

node.js - 如何使用 imapflow 只获取未读电子邮件?

node.js - Azure 上的 Node 服务器 HTTPS 和 HTTP

node.js - Express + Socket.IO + RabbitMQ (node-amqp)

node.js - 我在我的集​​群 node.js/socket.io/redis pub/sub 应用程序中收到重复消息

node.js - socket.io:高流量时出现错误请求错误

node.js - 内部 socket.io 客户端列表位置

javascript - 如何将路径数组转换为树对象?

node.js - Node aws-sdk s3 文件上传大小

node.js - 如何在 Express 4.0 路由器中间件中重用 MongoClient 对象?

node.js - 在 Amazon Ec2 免费套餐上为套接字 io 启动新端口