基于netty的企业即时通信系统的设计与实-离线消息处理

原文地址:http://www.cookqq.com/blog/8a10a5f35382ba2e0153c7a1125c20e7
android

客户端与服务器保持长链接,服务器能够很轻松的向客户端推送消息。因为网络不稳定、程序不可能24小时都被程序运行,客户端与服务器没有创建长链接的时候,服务器怎么向客户端推送消息呢??
ios


一种方式:只要是客户端开机,自动运行程序,自动和服务器保持长链接。 安全

    ios手机若是程序退到后台,必须断开长链接,一直保持长链接不可能,若是你使用voip技术在后台保持长链接,这个作法不能被appstore审核经过 服务器

    android手机后台运行service,若是用户强制关闭或者手机自动启动,通常程序是不能启动的~~
网络

另外一种方式:使用离线推送方式 架构

    ios推送离校消息,苹果有本身的规则,而且作的很好。
app

    android的离线消息推送须要链接google地址,因为国内访问国外的网址太不稳定了,直接使用google提供的推送方式不理想。
优化


    android手机的离线推送消息是个难解的题,第一种方式程序很难一直在后台运行,总有被杀死的时候,程序自动启动这个功能google已经安全优化了,不是任何程序都能随意启动!!
google

第二种方式使用google提供的离线推送消息机制,因为国内访问国外的限制,也不能有效的解决问题。 spa


  离线消息和在线消息只能分开,离线消息由于安卓上面会被各类因素影响,只能用大厂的推送通道,他们有足够多的app能够互相叫醒,在线消息得本身作,由于推送通道的响应速度不行。 

blob.png

    手机首次和服务器端创建长链接成功以后,客户端一样也要和极光服务器端创建信任关系。客户端在线状态下,和服务器的消息交互都走本身的网络通讯架构,不通过极光服务器。本身服务器重点处理在线用户的消息。


blob.png

  当客户端与服务器失去联系,服务器有消息须要推送给这个客户端的时候,服务器直接把消息推送给极光服务器,再经过极光推送给客户端。这个过程咱们能够理解成不要求及时性~~~

相关文章
相关标签/搜索