Websocket Firebase:使用坏网络管理状态

Websocket Firebase:使用坏网络管理状态,websocket,real-time,firebase,user-presence,Websocket,Real Time,Firebase,User Presence,为了管理Firebase的状态(在多个窗口打开的情况下),我正在使用该系统,在每个连接上,我都会将一个随机值推送到一个数组中,然后我会删除onDisconnect,然后基本上检查该数组是否为空 var ref = new Firebase('https://myfirebase.firebaseIO.com/{user_id}/online') ref.push(new Date().getTime()).onDisconnect().remove() 它工作得非常好,但我注意到有时如果网络连

为了管理Firebase的状态(在多个窗口打开的情况下),我正在使用该系统,在每个连接上,我都会将一个随机值推送到一个数组中,然后我会删除onDisconnect,然后基本上检查该数组是否为空

var ref = new Firebase('https://myfirebase.firebaseIO.com/{user_id}/online')
ref.push(new Date().getTime()).onDisconnect().remove()
它工作得非常好,但我注意到有时如果网络连接非常糟糕,onDisconnect不会被触发,我最终会有幽灵在线用户

我一直在想,让一种crontab每隔X分钟清理一次数据可能是一种解决办法,但它似乎有点脏

有什么办法可以让它变得更好吗


谢谢

只要在设置任何数据之前执行“.onDisconnect().remove()”,就应该可靠地将其删除。可能会有短暂的延迟(最多3到5分钟),但最终应该删除数据。如果你不这么认为,我建议你用pingsupport@firebase.com尽可能多地提供细节。也可能会有所帮助,请查看关于构建状态系统的博客文章:以确保涵盖所有角落案例。