為保證及時(shí)性和到達(dá)率笼踩,使用兩種推送方案并行,現(xiàn)實(shí)現(xiàn)一套消息處理去重機(jī)制
概述
+ 封裝消息體窒篱,每條消息有唯一消息ID
+ 每個(gè)終端只訂閱對應(yīng)的一個(gè)mqtt主題
+ 不使用eclipse提供的mqtt service包雏蛮,只使用mqtt client包
+ 實(shí)現(xiàn)一套消息去重機(jī)制
要求
實(shí)現(xiàn)jpush和mqtt消息訂閱與接收,處理重復(fù)消息杉辙,分發(fā)消息給業(yè)務(wù)代碼,要求可以隨時(shí)替換jpush為其他方案捶朵,并保證該機(jī)制穩(wěn)定可靠蜘矢。
JPush接入
使用JPush Android SDK v2.1.7,使用默認(rèn)配置综看,接入餐時(shí)間后臺(tái)服務(wù)器
Mqtt接入
使用eclipse.paho.client.mqttv3的1.1.0版本品腹,mqtt協(xié)議版本3.1.1,每十分鐘主動(dòng)斷開一次并重連和重新訂閱红碑。
消息格式
__待定__
消息去重
利用隊(duì)列和LruCache存儲(chǔ)消息舞吭,使用生產(chǎn)者和消費(fèi)者模型,具體流程如下圖:
消息分發(fā)
消息利用android廣播發(fā)送給業(yè)務(wù)邏輯代碼處理
代碼
暫無