【轉載】Android消息推送(二)--基於MQTT協議實現的推送功能

前段時間公司需要Android端的手機羣推功能,我們就通過MQTT來實現了該功能。

MQTT的官網如下 http://mqtt.org/

關於系統的主要架構就不詳述了。這關係的到職業道德問題,在這裏只談談MQTT實現推送的功能。

 

在MQTT官網中http://mqtt.org/software列舉出了實現了該協議的開源客戶端和服務器工程和庫。

 

我們是通過ApacheActiveClient開源項目的基礎上來實現的。

 

下面介紹客戶端和服務器簡單的搭建:

客戶端 :

首先到github(https://github.com/tokudu/AndroidPushNotificationsDemo)網站上去下載手機客戶端程序:AndroidPushNotificationsDemo.

運行結果如下圖所示 : 

其中Test_android1是對手機的唯一標識,這個生成策略是可以自己來定的。很多時候我們需要話更多的時間去研究它的源碼,而不是去問別人,只有當自己實在找不到解決方案的時候再問,我覺得這樣更利於我們對項目的理解和繼續擴展。

 

服務器端

至於服務器程序可以到http://activemq.apache.org/去下載。需要注意的是,請讀者仔細閱讀該開源項目的文檔。

該項目非常強大,支持配置服務器的主從,分佈式等。

 

當你搭建成功服務器後可以使用客戶端連接了。點擊Start Push service按鈕啓動推送功能。

連接成功後你會在控制檯看到如下界面:

 

在服務器後臺你將看到:

畫的紅線部分就是你的手機設備,然後單擊進入如下界面:

最後單擊確定 ,在手機通知欄將會收到消息 :

 

至此,這就是簡單的服務器想客戶端推送的消息了。

 

 

當然這是最最簡單的實現了。接下來就要看自己公司實際的需要進行擴展服務器或者客戶端了。

 

其實MQTT最顯著的功能,就是羣推。客戶端可以註冊多個token(客戶端的唯一標識)可以讓所有客戶端都註冊該token即可,然後發送的時候,只需要針對一個token發消息,那麼所有的手機都收到了。不用像其他的推送一樣,對每個token都去發一遍。所以MQTT羣發的效率的極高的。這樣的話對手機端來說就很好了,也許我們需要對某個程序的所有手機發、向某個程序某個版本手機發,向某臺手機發推送 等等用MQTT都可以很輕鬆的實現。

 

接下來就是要靠自己去研究MQTT了。其他官網文檔,和一些開源的功能已經提供了很多我們學習的資料。

 

下面是關於XMPP協議推送 :Android消息推送(一)--AndroidPn(XMPP協議)Demo版到正式上線

如果github上面的Android客戶端的程序不能運行,可以下載我們用的(也是github上下載的):

http://download.csdn.net/detail/johnny901114/5820151 如果還有問題可以留言。

 

轉載請註明出處 : http://blog.csdn.net/johnny901114/article/details/8898727

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章