我在Android应用程序中实现了Parse。现在假设我的应用程序A和B.中有两个用户。如果B在线,我正在尝试维护一个布尔变量isOnline来检查用户的状态。现在B能够继续检查这个变量是否用户在线。但是我试图在B无法连接时设置isOnline为false。但是如果B无法连接且网络断开则问题就出现了我无法设置这个变量为false。实现它的确切方法是什么。 这是whatsApp中的场景。请帮助我。
答案 0 :(得分:0)
你可以只使用Parse来实现,但我会不推荐这个,因为效率非常低,并且会很快耗尽你的API调用。
对于此示例,假设刷新率为30秒。
当用户(用户 A )连接时(例如,应用程序已打开),则每隔30秒,您可以设置一些字段:object.set(“lastOnline”,currentTime)
如果用户离线,他们的“lastOnline”值将停止更新。
用户 B 还会轮询用户 A 对象,并查询 lastOnline 字段。所以说 user = user.get(); lastOnline = user.get(“lastOnline”) if(time.now - lastOnline> 30秒){ 用户离线 } else { 用户在线 }
我不推荐这种技术,因为用户 A 每30秒推送一次更新,而用户 B 每30秒就会拉下一个新对象。因此,每小时只有2个用户可以进行240次API调用。
使用像PubNub这样的平台和Parse一起使用可能会更好。使用PubNub处理聊天类型功能,以及Parse处理更通用的数据存储。