检查使用Firebase制作的聊天应用程序中的用户是否在线

3
使用Firebase的实时数据库创建聊天应用程序。
用户类如下所示(Firebase中默认为JSON格式)。
"users" : {
     "-K2ib62mjHh34CAUfig" : {
      "lastvisibleat" : "2016-09-30 07:10:40",
      "name" : "Peter Parker",
      "online" : "1"
    },
    "--K2ib62mjHh34CAUh18" : {
      "lastvisibleat" : "2016-09-30 07:26:17",
      "name" : "Riddhi Dixit",
      "online" : "1"
    }
}

当用户的互联网突然不可用或浏览器崩溃等情况发生时,无法使用CodeIgniter的sess_destroy()方法处理。我希望将状态从online: "1"更改为online : "0"

服务器是使用CodeIgniter构建的PHP。


我将为用户实现在线离线功能,我没有将用户信息存储在Firebase实时数据库中,而是使用授权(在Firebase上使用电子邮件和密码注册用户);那么是否有必要将用户信息也存储在数据库树中以实现此功能? - Saim Abdullah
@SaimAbdullah 是的,你需要使用cron来定时发送请求给用户,以检查其状态。 - prashant0205
1个回答

8
我建议使用Firebase内置的onDisconnect()钩子。它使您能够预定义一个操作,该操作将在客户端断开连接时立即发生。
请参阅Firebase文档:管理Web客户端的在线状态
虽然链接的文档针对Web客户端,但是等效的功能也适用于AndroidiOS客户端。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接