Socket.io:set / get vs simple var

时间:2013-11-07 06:58:21

标签: node.js socket.io

在socket.io中,您可以使用socket.set和socket.get方法存储和获取与特定客户端关联的数据。但是,您可以简单地在on.('connection')事件处理程序中声明一个var,如果使用MemoryStore,它将以与set / get相同的方式工作。那有什么区别呢?只有在使用RedisStore时才能获得/设置才有意义吗?

1 个答案:

答案 0 :(得分:0)

当您需要关联变量&时,

.get.set才有意义。具有特定socket对象的值,您可以通过使用范围来执行您所说的内容,但请记住,无论socket.io存储数据的位置如何,它都不会影响您的函数范围。

在一个简单的示例中,假设您要存储名称,电子邮件地址,那么您将在.on('connection',..)内以

的形式声明
var connnection={
 socket_id123:{
  "name":"joe"
  ,"mail":"joe@ii.com"
 }
 ,socket_id234:{
  "name":"joe"
  ,"mail":"joe@ii.com"
 }
}

在这种形式中,你必须检查存在,查询对象,并跟踪数据,这样你就可以搞乱树结构了。

.get.set上面检查和操作树,简化了,每个套接字对象都有自己的变量,没有任何东西可以覆盖它们,删除它们或者弄乱它们,并保持不变范围清洁。