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

本文探讨了在客户端与服务器未建立长连接时如何实现消息推送的问题,针对iOS与Android平台的特点,分析了两种主要解决方案:一是保持客户端始终与服务器连接;二是采用离线推送方式。文中特别提到Android平台离线推送面临的挑战及可能的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 原文地址:点击打开链接

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


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

    ios手机如果程序退到后台,必须断开长连接,一直保持长连接不可能,如果你使用voip技术在后台保持长连接,这个做法不能被appstore审核通过

    android手机后台运行service,如果用户强制关闭或者手机自动启动,一般程序是不能启动的~~

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

    ios推送离校消息,苹果有自己的规则,并且做的很好。

    android的离线消息推送需要连接google地址,由于国内访问国外的网址太不稳定了,直接使用google提供的推送方式不理想。


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

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


  离线消息和在线消息只能分开,离线消息因为安卓上面会被各种因素影响,只能用大厂的推送通道,他们有足够多的app可以互相叫醒,在线消息得自己做,因为推送通道的响应速度不行。 

blob.png

    手机首次和服务器端建立长连接成功之后,客户端同样也要和极光服务器端建立信任关系。客户端在线状态下,和服务器的消息交互都走自己的网络通信架构,不经过极光服务器。自己服务器重点处理在线用户的消息。


blob.png

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值