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