一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

MQTT+ApolloServer實現(xiàn)Android的消息推送功能 開源代碼

 心不留意外塵 2016-07-17

http://www./article/256428

應(yīng)用背景

最近,領(lǐng)導(dǎo)讓研究android系統(tǒng)的應(yīng)用開發(fā),于是就開始研究數(shù)據(jù)庫訪問+消息推送+實時視頻播放等基本應(yīng)用,下面主要是android消息推送功能的研究。PS:大家有問題可以隨時私信我,共同學(xué)習(xí)。

消息的推送就是從服務(wù)器端向移動終端發(fā)送連接請求,傳輸特定的信息。例如一些新聞客戶端,每隔一段時間都會受到一條或者多條通知(Notification),這就是從服務(wù)器端傳過來的推送消息。

推送的技術(shù)主要是以下三種:

(1)通過SMS(Short Message Service,短信群發(fā)服務(wù)系統(tǒng))進(jìn)行服務(wù)器端和客戶端的交流通信。在Android平臺上,可以通過攔截SMS消息并解析內(nèi)容來了解服務(wù)器的意圖,就可以實現(xiàn)完全的實時操作。但是該方案成本比較高,而且基本依賴運營商。

(2)循環(huán)主動定時獲取。該方法需要客戶端編寫一個定時或者周期性訪問服務(wù)器端接口,從而獲取最新的消息。但是,輪詢的頻率太快會消耗網(wǎng)絡(luò)帶寬和電量,太慢會導(dǎo)致消息更新不及時。

(3)持久連接方案。需要在客戶端開通一個服務(wù)來保持和服務(wù)器端的持久連接(Apple和谷歌的C2DM采用該機制),從而當(dāng)服務(wù)器端有最新的消息時,可以及時接收到通知。但是該方案也會消耗系統(tǒng)的性能和電量,當(dāng)Android系統(tǒng)可用資源較低時,系統(tǒng)會關(guān)閉服務(wù),從而與系統(tǒng)的連接會終端。

     相比較其它兩種方案,第三種方案的優(yōu)勢還是比較明顯,而且可行性最高。在Android系統(tǒng)軟件中編寫系統(tǒng)服務(wù)或開機啟動功能,當(dāng)系統(tǒng)資源利用率較低而關(guān)閉服務(wù)器時,可以再重啟該服務(wù),進(jìn)而實現(xiàn)持久連接的方式。使用谷歌的C2DM(Android Cloud to Device Message)應(yīng)該是實現(xiàn)PUSH消息的最便捷方式,但是C2DM必須依賴谷歌的服務(wù)器,國內(nèi)網(wǎng)絡(luò)無法正常使用。

    目前,有兩種較好的方式可以實現(xiàn)這種持久連接的功能,一種是IBM的MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸)協(xié)議實現(xiàn)PUSH消息功能,第二種是采用基于XMPP協(xié)議的第三方Androidpn實現(xiàn)消息推送。

MQTT是IBM開發(fā)的一個即時通信協(xié)議,該協(xié)議支持所有平臺,可以將所有物聯(lián)網(wǎng)設(shè)備和外部連接起來,被用來當(dāng)作傳感器和致動器的通信協(xié)議。

         使用它作為消息推送協(xié)議的基本原理是:使用消息代理服務(wù)器(Message Broker),客戶端連接上消息代理服務(wù)器,跟服務(wù)器協(xié)商可以接受哪些類型的消息,同時也可以發(fā)布自己的消息,這些消息根據(jù)協(xié)議的內(nèi)容可以被其它客戶端收到,業(yè)務(wù)流程如圖1所示。

<!--[if gte vml 1]><!--[if !vml]--><!--[endif]--><!--[if gte mso 9]>

關(guān)鍵技術(shù)

通知功能的實現(xiàn)

1. Apollo服務(wù)器的安裝和配置

想要實現(xiàn)基于MQTT的消息推送功能,必須先配置message broker服務(wù)器,這里選擇服務(wù)器Apollo1.7來搭建環(huán)境。具體的搭建主要分為下面幾個步驟:

(1)先到官方網(wǎng)站現(xiàn)在最新版的Apollo1.7服務(wù)器。

  (2)然后運行apollo.cmd 創(chuàng)建服務(wù)器實例。

   

(3)在服務(wù)器實例的文件夾下面配置參數(shù)。

(4)運行apollo-broker.cmd run開啟服務(wù)器,在瀏覽器中輸入服務(wù)器的IP地址,即可以訪問Apollo服務(wù)器界面。


(5)輸入之前配置好的用戶名和密碼參數(shù),即可以訪問Apollo Console控制臺。

2. MQTT客戶端的實現(xiàn)

使用WebService服務(wù)器向Android端發(fā)送通知,實際上可以看成是兩個MQTT 客戶端之間的通信過程,消息在傳播過程中間經(jīng)過了Message Broker服務(wù)器的轉(zhuǎn)發(fā),所以需要在WebService服務(wù)器和Android端分別配置MQTT客戶端。兩邊的代碼實現(xiàn)過程基本一致,都是要在工程中導(dǎo)入mqtt-client-0.4.0.jar的類庫,然后要使用如下圖這些工具類實現(xiàn)MQTT功能。

具體的代碼可以參考:

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    日韩中文字幕免费在线视频| 日本一区二区三区久久娇喘| 人妻内射在线二区一区| 国产av熟女一区二区三区四区| 欧美黄色成人真人视频| 国产又色又粗又黄又爽| 免费在线播放一区二区| 色欧美一区二区三区在线| 日本女优一区二区三区免费| 久草视频这里只是精品| 老鸭窝老鸭窝一区二区| 91精品国产av一区二区| 成人亚洲国产精品一区不卡| 日韩黄色大片免费在线| 少妇人妻精品一区二区三区| 国产成人亚洲综合色就色| 色一情一乱一区二区三区码| 国产午夜福利在线免费观看| 一区二区三区日韩中文| 国产成人av在线免播放观看av| 欧美区一区二在线播放| 久久精品国产99精品最新| 精品欧美日韩一区二区三区 | 精品国产亚洲区久久露脸| 国产精品亚洲综合天堂夜夜| 女人高潮被爽到呻吟在线观看| 久久国产人妻一区二区免费| 欧美区一区二在线播放| 国产精品一区二区传媒蜜臀| 老鸭窝精彩从这里蔓延| 国产高清视频一区不卡| 欧美日韩国产精品黄片| 性感少妇无套内射在线视频 | 国产精品久久熟女吞精| 国产三级欧美三级日韩三级| 国产亚洲成av人在线观看| 国产一区麻豆水好多高潮| 狠狠做深爱婷婷久久综合| 亚洲午夜av一区二区| 欧美成人欧美一级乱黄| 欧美午夜色视频国产精品|