在线状态

在线状态是PC时代背景下的产物,PC时代电脑上的社交软件有明确的在线状态,登录上去就是上线,退出关机就是下线。而在移动互联网下情况发生了变化,手机上社交软件基本都是登录一次,极少登出(换手机的情况下或其它情况),不能24小时运行,在后台都是被冻结或者杀掉,但是有了推送的存在,可以及时收到推送信息的提醒。把PC时代的在线状态往移动互联网时代的手机上套是不合适的,所以微信明智的去掉了在线状态,默认大家永远都是在线的。

另外从性能上考虑,在线状态对服务器的性能消耗极大,我们曾经做的PC下的社交软件,在线状态消耗的资源峰值能够达到70%,70%的计算和带宽都消耗在在线状态上。

如果是办工场景,阅读状态要比在线状态要实用,有了阅读状态在线状态就没有必要了。

但有些时候甲方非要不可,或者在某些特殊情况下,确实有意义,也可以增加上在线状态,可以通过二次开发来实现在线状态。

1. 实现在线状态

  1. 开启IM服务的用户在线事件回调功能,把用户上线/下线事件推送到应用服务,事件中包括平台,clienId等信息。
  2. 应用服务记录每个用户的每个客户端最后一次上线/下线的时间点,可以定义规则,多久没有上线算是手机离线。
  3. 客户端周期性地后主动上报自己的状态,主要是自定义状态,比如疯狂加班中,上报给应用服务。
  4. 客户端在需要查询对方状态是调用应用服务接口,获取到对方用户每个客户端的最后上下线时间还有自定义状态。
  5. 避免不停地轮询所有联系人的状态,一般建议仅进入到会话时获取对方状态,减少资源消耗。
2018 © wildfirechat.cn 京ICP备18060403号-1 all right reserved,powered by Gitbook该文件修订时间: 2020-08-05 10:59:58

results matching ""

    No results matching ""