我的聊天应用有以下方法:
这个想法是当记录的用户与互联网断开连接时,他的状态仍为1.此外,如果用户删除应用程序,他的状态仍为1.
在删除/删除应用后,是否有代码或方法来检测用户上次上线的时间?删除应用程序的许多用户仍然具有在线状态。
答案 0 :(得分:2)
在您的活动onStart()
和onResume()
中,您可以将在线状态消息发送到服务器:
1 (在线表示)
0 (分别表示离线),
但问题是如果应用程序到达前台或互联网停止或用户卸载应用程序会发生什么?
您的服务器仍然只有在线状态。解决问题的一种方法是使用MQTT。
在Activity
,onStart()
和onResume()
中,将在线状态消息分别以1,0的形式发送给代理。在进行mqtt连接时,设置最后一条消息:
MqttConnectOptions options = new MqttConnectOptions();
options.setConnectionTimeout(60);
options.setWill(STATUS, ("PASS_OFFLINE_STATUS_OF_USER").getBytes(), 0, true);
client.setCallback(ApplozicMqttService.this);
client.connect(options);
最后将消息在MQTT中用于通知其他客户端有关非正常断开连接的客户端。
在此处阅读更多内容:
http://www.hivemq.com/blog/mqtt-essentials-part-9-last-will-and-testament
答案 1 :(得分:0)
您基本上必须跟踪他们上次访问您的服务器的时间。如果上次访问超过X分钟(X是您决定的),那么您将它们设置为脱机。