在 socket.io 中,您可以使用 socket.set 和 socket.get 方法存储和获取与特定客户端关联的数据。但是,您可以简单地在事件处理程序中声明一个 var,on.('connection')
如果使用 MemoryStore,它将以与 set/get 相同的方式工作。那有什么区别呢?只有在使用 RedisStore 时 get/set 才有意义吗?
问问题
542 次
1 回答
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"
}
}
在这种形式中,您必须检查是否存在,查询对象并跟踪数据,因此您可以弄乱树结构。
而 with .get
,.set
上面的检查和操作树,被简化了,每个套接字对象都有自己的变量,没有任何东西可以覆盖它们,删除它们,或者弄乱它们,并且保持范围更干净。
于 2013-11-07T07:42:28.540 回答