在socket.io中,您可以使用socket.set和socket.get方法存储和获取与特定客户端关联的数据。但是,您可以简单地在on.('connection')
事件处理程序中声明一个var,如果使用MemoryStore,它将以与set / get相同的方式工作。那有什么区别呢?只有在使用RedisStore时才能获得/设置才有意义吗?
答案 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
上面检查和操作树,简化了,每个套接字对象都有自己的变量,没有任何东西可以覆盖它们,删除它们或者弄乱它们,并保持不变范围清洁。