幾種常見的解決方案實現原理
1)輪詢(Pull)方式:客戶端定時向伺服器發送詢問消息,一旦伺服器有變化則立即同步消息。
2)SMS(Push)方式:通過攔截SMS消息並且解析消息內容來了解伺服器的命令,但這種方式一般用戶在經濟上很難承受。
3)持久連接(Push)方式:客戶端和伺服器之間建立長久連接,這樣就可以實現消息的及時行和實時性。
3、消息推送解決方案概述
A、C2DM雲端推送方案
在Android手機平台上,Google提供了C2DM(Cloudto Device Messaging)服務。Android
Cloud to Device Messaging (C2DM)是一個用來幫助開發者從伺服器向Android應用程序發送數據的服務。該服務提供了一個簡單的、輕量級的機制,允許伺服器可以通知移動應用程序直接與伺服器進行通信,以便於從伺服器獲取應用程序更新和用戶數據。
該方案存在的主要問題是C2DM需要依賴於Google官方提供的C2DM伺服器,由於國內的網路環境,這個服務經常不可用。
B、MQTT協議實現Android推送
採用MQTT協議實現Android推送功能也是一種解決方案。MQTT是一個輕量級的消息發布/訂閱協議,它是實現基於手機客戶端的消息推送伺服器的理想解決方案。
wmqtt.jar
是IBM提供的MQTT協議的實現。我們可以從這里(https://github.com/toku/AndroidPushNotificationsDemo)下載該項目的實例代碼,並且可以找到一個採用php書寫的伺服器端實現(https://github.com/toku/PhpMQTTClient)。
C、RSMB實現推送功能
Really Small Message Broker (RSMB)
,是一個簡單的MQTT代理,同樣由IBM提供,其查看地址是:http://www.alphaworks.ibm.com/tech/rsmb。預設打開1883埠,應用程序當中,它負責接收來自伺服器的消息並將其轉發給指定的移動設備。SAM是一個針對MQTT寫的PHP庫。我們可以從這個http://pecl.php.net/package/sam/download/0.2.0地址下載它.
D、XMPP協議實現Android推送
Google官方的C2DM伺服器底層也是採用XMPP協議進行的封裝。XMPP(可擴展通訊和表示協議)是基於可擴展標記語言(XML)的協議,它用於即時消息(IM)以及在線探測。這個協議可能最終允許網際網路用戶向網際網路上的其他任何人發送即時消息。
androidpn是一個基於XMPP協議的java開源Android push notification實現。它包含了完整的客戶端和伺服器端。但也存在一些不足之處:
1)
比如時間過長時,就再也收不到推送的信息了。
2)性能上也不夠穩定。
3)如果將消息從伺服器上推送出去,就不再管理了,不管消息是否成功到達客戶端手機上。
如果我們要使用androidpn,則還需要做大量的工作,需要理解XMPP協議、理解Androidpn的實現機制,需要調試內部存在的BUG。
⑵ openfire 和androidpn哪個好些
目前來看相對openfire來說安卓更為主流:
1、Openfire 採用Java開發,開源的實時協作(RTC)伺服器基於XMPP(Jabber)協議。Openfire安裝和使用都非常簡單,並利用Web進行管理。單台伺服器可支持上萬並發用戶。
2、Android(['ændrɔid])是一個以Linux為基礎的半開源操作系統,主要用於移動設備,由Google和開放手持設備聯盟開發與領導。 Android 系統最初由安迪·魯賓(Andy Rubin)製作,最初主要支持手機。2005年8月17日被Google收購。2007年11月5日,Google與84家硬體製造商、軟體開發商及電信營運商組成開放手持設備聯盟(Open Handset Alliance)來共同研發改良Android系統並生產搭載Android的智慧型手機,並逐漸拓展到平板電腦及其他領域上。隨後,Google以Apache免費開源許可證的授權方式,發布了Android的源代碼。
⑶ android消息推送GCM、XMPP、MQTT三種方案的優劣,越仔細越好,有具體分析更好!
android消息推送GCM、XMPP、MQTT三種方案的優劣:⑷ android消息推送怎麼實現
極光推送可以輕松實現android消息推送。具有操作步驟如下:⑸ android studio怎麼使用openfire
Android studio為我們提供了git的插件,讓我們能夠很好的進行版本控制,這篇blog我們就來展示一下如何使用(操作系統是win7)。
准備,下載window上的git, 下載地址 ;在studio中設置git插件:File->Setting->Version Control->Git, 然後可以點擊Test測試一下,如下圖:那麼你就設置成功了。
2.初始化git項目(git init),操作如下:VCS->Enable Control Integration->Select "Git".
3.為git添加remote,在這一步中,studio沒有為我們提供可視化的GUI,得用Git工具了。找到並打開git安裝目錄下面的Git Bash,將目錄切換到項目的目錄,然後輸入git添加remote的命令,例如:git remote add origin "https://github.com/xxx/xxx.git".
4.將代碼添加到VCS(git add),選中要提交的文件->VCS->Git->Add,
⑹ Android 幾種消息推送方案總結
Android 幾種消息推送方案總結: