Node.js 需要在组中为now.js对象共享模式提供建议吗

Node.js 需要在组中为now.js对象共享模式提供建议吗,node.js,nowjs-sockets,Node.js,Nowjs Sockets,我有一个应用程序,我想在其中使用node.js和now.js跨任意数量的客户端共享nowjs“组”中对象的状态 举个例子来说明我要做的事情,假设在now.js附带的多房间聊天示例中,可以有任意数量的房间,ID由用户选择。如果用户知道ID,他们可以进入(或第一个“创建”)该房间。一旦创建并开始通信,每个房间都会维护一个“历史”对象。history对象包含一个或两个属性,以及一个注释对象数组,每个对象都有一个user属性、一个comment属性和一个datetime属性。当新用户连接时,他们应该立即

我有一个应用程序,我想在其中使用node.js和now.js跨任意数量的客户端共享nowjs“组”中对象的状态

举个例子来说明我要做的事情,假设在now.js附带的多房间聊天示例中,可以有任意数量的房间,ID由用户选择。如果用户知道ID,他们可以进入(或第一个“创建”)该房间。一旦创建并开始通信,每个房间都会维护一个“历史”对象。history对象包含一个或两个属性,以及一个注释对象数组,每个对象都有一个user属性、一个comment属性和一个datetime属性。当新用户连接时,他们应该立即可以访问历史记录

是否有方法在服务器上存储组范围的对象变量以与之同步?我是不是想错了?我是疯了还是有点慢?

好吧……我明白了

我在服务器端有一个新函数createHistory(groupid),当用户进入房间(组)时,如果新的历史对象不存在,它将返回一个新的历史对象。如果该用户刚刚创建了文件室,则会发生这种情况

此历史对象使用添加、删除和列表方法。因为我需要从客户端获取列表,所以使用如下回调非常重要:

api.get = (callback) ->
  callback(_history)
我分配结果:

everyone.getGroup(this.now.groupid).now.history = createHistory(this.now.groupid)
现在我可以在服务器上添加历史记录:

api.add = (time,user,text) ->
  _history.items.push {time:time, user:user,text:text}
从我的客户那里得到:

now.history.get (history) ->
  for item in history
    #do something...

唯一的缺点是一旦房间空无一人,历史就烟消云散了……我想。尽管我认为你可以检查最后一次断开连接,如果你愿意,可以将其保留在某个地方。

在处理非常类似的事情时,根据我与团队的合作,即使是空的,它也会保留,因此理论上我认为,即使每个人都断开连接,历史也会保留,当然,如果历史记录没有以某种方式保存到磁盘上,服务器重启会擦除历史记录。