基于netty的企业即时通讯系统的设计与实-离线消息处理
2019獨角獸企業(yè)重金招聘Python工程師標準>>>
| 原文地址:http://www.cookqq.com/blog/8a10a5f35382ba2e0153c7a1125c20e7 客戶端與服務器保持長連接,服務器可以很輕松的向客戶端推送消息。由于網(wǎng)絡不穩(wěn)定、程序不可能24小時都被程序運行,客戶端與服務器沒有建立長連接的時候,服務器怎么向客戶端推送消息呢?? 一種方式:只要是客戶端開機,自動運行程序,自動和服務器保持長連接。 ????ios手機如果程序退到后臺,必須斷開長連接,一直保持長連接不可能,如果你使用voip技術在后臺保持長連接,這個做法不能被appstore審核通過 ????android手機后臺運行service,如果用戶強制關閉或者手機自動啟動,一般程序是不能啟動的~~ 另一種方式:使用離線推送方式 ????ios推送離校消息,蘋果有自己的規(guī)則,并且做的很好。 ????android的離線消息推送需要連接google地址,由于國內(nèi)訪問國外的網(wǎng)址太不穩(wěn)定了,直接使用google提供的推送方式不理想。 ????android手機的離線推送消息是個難解的題,第一種方式程序很難一直在后臺運行,總有被殺死的時候,程序自動啟動這個功能google已經(jīng)安全優(yōu)化了,不是任何程序都能隨意啟動!! 第二種方式使用google提供的離線推送消息機制,由于國內(nèi)訪問國外的限制,也不能有效的解決問題。 ??離線消息和在線消息只能分開,離線消息因為安卓上面會被各種因素影響,只能用大廠的推送通道,他們有足夠多的app可以互相叫醒,在線消息得自己做,因為推送通道的響應速度不行。?
????手機首次和服務器端建立長連接成功之后,客戶端同樣也要和極光服務器端建立信任關系。客戶端在線狀態(tài)下,和服務器的消息交互都走自己的網(wǎng)絡通信架構,不經(jīng)過極光服務器。自己服務器重點處理在線用戶的消息。
??當客戶端與服務器失去聯(lián)系,服務器有消息需要推送給這個客戶端的時候,服務器直接把消息推送給極光服務器,再通過極光推送給客戶端。這個過程我們可以理解成不要求及時性~~~ |
轉載于:https://my.oschina.net/winHerson/blog/650326
總結
以上是生活随笔為你收集整理的基于netty的企业即时通讯系统的设计与实-离线消息处理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: eclipse各种配置
- 下一篇: MATLAB中求矩阵非零元的坐标