这是我的Firebase数据库结构:
// Registered users
users{
9BKlHH11NvU1kQdpwSaFshNJn8C2{
foo: foo
bar: bar
B5Lq9RquOvcK7CLhh1Mdq0qWCqO2{
foo: foo
bar: bar
// Connected users inside the lobby
Lobby{
9BKlHH11NvU1kQdpwSaFshNJn8C2,
B5Lq9RquOvcK7CLhh1Mdq0qWCqO2
因此,每当注册用户登录并进入大厅时,他的uid就会被添加到大厅列表中,所以每个人都能看到他。如果他在那里注销了将他从大厅列表中删除的过程。 现在的问题是;删除已关闭浏览器/应用程序的用户而不离开大厅的最佳方法是什么,这样其他用户就不会看到那个列表中没有实际连接的用户?是否有超时功能?
答案 0 :(得分:0)
没有超时功能。
虽然在应用程序端,您可以添加并检查大厅中的条目,并在每10或30秒或更长时间内发送信标请求,以使大厅中的条目有效。
在UI中,在大厅中列出用户时,如果Lobby条目早于信标时间,您可以不列出它们或发送删除它们的请求。
最好在UI中跳过添加该用户,让旧条目存在。发送删除请求将是矛盾的,如果更多前端正在发送从大厅中删除相同用户的请求,则会发生冲突。但是,这完全取决于您的应用程序结构和用例。