當前位置:首頁 » 安卓系統 » androidxmpp推送

androidxmpp推送

發布時間: 2025-07-10 21:40:32

1. android消息推送GCM、XMPP、MQTT三種方案的優劣,越仔細越好,有具體分析更好!

android消息推送GCM、XMPP、MQTT三種方案的優劣:
1、GCM服務(Google Cloud Messaging)優點:Google提供的服務、原生、簡單,無需實現和部署服務端。缺點:Android版本限制,該服務在國內不夠穩定、需要用戶綁定Google帳號,受限於Google。
2、XMPP協議(Openfire + Spark + Smack)優點:協議成熟、強大、可擴展性強、目前主要應用於許多聊天系統中,且已有開源的java版的開發實例androidpn。缺點:協議較復雜、冗餘(基於XML)、費流量、費電,部署硬體成本高。
3、MQTT協議優點:協議簡潔、小巧、可擴展性強、省流量、省電,目前已經應用到企業領域,且已有C++版的服務端組件rsmb。缺點:不夠成熟、實現較復雜、服務端組件rsmb不開源,部署硬體成本較高。
d消息推送可以去了解一下極光,極光是個不錯的平台。極光緊密圍繞移動開發者需求,打造的開發者服務平台,可以提供一站式SaaS服務,通過全面覆蓋PC、手機、感測器、無線路由器等多種設備數據,打造全域數據平台。當前,不斷更新的SaaS產品及服務已深受國內百萬開發者的認可和信賴。

2. android 即時通信。。如何實現

Android現在即時通訊(或者消息推送)有好幾個開源項目框架可以實現,可以使用XMPP來實現即時通信。

XMPP(Extensible Messageing and Presence Protocol:可擴展消息與存在協議)是目前主流的四種IM(IM:instant messaging,即時消息)協議之一,其他三種分別為:即時信息和空間協議(IMPP)、空間和即時信息協議(PRIM)、針對即時通訊和空間平衡擴充的進程開始協議SIP(SIMPLE)。

1. XMPP的前身是Jabber,一個開源形式組織產生的網路即時通信協議。XMPP目前被IETF國際標准組織完成了標准化工作。標准化的核心結果分為兩部分; 核心的XML流傳輸協議 基於XML流傳輸的即時通訊擴展應用 XMPP的核心XML流傳輸協議的定義使得XMPP能夠在一個比以往網路通信協議更規范的平台上。藉助於XML易於解析和閱讀的特性,使得XMPP的協議能夠非常漂亮。 XMPP的即時通訊擴展應用部分是根據IETF在這之前對即時通訊的一個抽象定義的,與其他業已得到廣泛使用的即時通訊協議,諸如AIM,QQ等有功能完整,完善等先進性。

2.XMPP中定義了三個角色,客戶端,伺服器,網關。通信能夠在這三者的任意兩個之間雙向發生。伺服器同時承擔了客戶端信息記錄,連接管理和信息的路由功能。網關承擔著與異構即時通信系統的互聯互通,異構系統可以包括SMS(簡訊),MSN,ICQ等。基本的網路形式是單客戶端通過TCP/IP連接到單伺服器,然後在之上傳輸XML。

3.傳輸的是與即時通訊相關的指令。在以前這些命令要麼用2進制的形式發送,要麼用純文本指令加空格加參數加換行苻的方式發送(比如MSN)。而XMPP傳輸的即時通訊指令的邏輯與以往相仿,只是協議的形式變成了XML格式的純文本。這不但使得解析容易了,人也容易閱讀了,方便了開發和查錯。而XMPP的核心部分就是一個在網路上分片斷發送XML的流協議。這個流協議是XMPP的即時通訊指令的傳遞基礎,也是一個非常重要的可以被進一步利用的網路基礎協議。

3. 如何實現android和伺服器的長連接

轉載 這種功能實際上就是數據同步,同時要考慮手機本身、電量、網路流量等等限制因素,所以通常在移動端上有一下兩個解決方案:

1.一種是定時去server查詢數據,通常是使用HTTP協議來訪問web伺服器,稱Polling(輪詢);

2.還有一種是移動端和伺服器建立長連接,使用XMPP長連接,稱Push(推送)。

從耗費的電量、流量和數據延遲性各方面來說,Push有明顯的優勢。但是使用Push的缺點是:

對於客戶端:實現和維護相對成本高,在移動無線網路下維護長連接,相對有一些技術上的開發難度。

對於伺服器:如何實現多核並發,cpu作業調度,數量龐大的長連接並發維護等技術,仍存在開發難點。

在講述Push方案的原理前,我們先了解一下移動無線網路的特點。

移動無線網路的特點:

因為 IP v4 的 IP 量有限,運營商分配給手機凳褲終端的 IP 是運營商內網的 IP,手機要連接 Internet,就需要通過運營商的網關做一個網路地址轉換(Network Address Translation,NAT)。簡單的說運營商的網關需要維護一個外網 IP、埠到內網 IP、埠的對應關系,以確保內網的手機可以跟 Internet 的伺服器通訊

GGSN(Gateway GPRS

Support Node 網關GPRS支持結點)模塊就實現了NAT功能。

因為大部分移動無線網路運營商都是為了減少網關的NAT映射表的負荷,所以如果發現鏈路中有一段時間沒有數據通訊時,會刪除其對應表,造成鏈路中斷。(關於NAT的作用及其原理可以查看我的另一篇博文:關於使用UDP(TCP)跨區域網,NAT穿透的心得)

Push在Android平台上長連接的實現:

既然我們知道我們移動端要和Internet進行通信,必須通過運營商的網關,所以,為了不讓NAT映射表失效,我們需要定時向Internet發送數據,因為只是為了不然NAT映射表失效,所以只需發送長度為0的數據即可。

這時候就要用到定時器,在android系統上,定時器通常有一下兩種:

1.java.util.Timer

2.android.app.AlarmManager

分析:

Timer:可以按照計劃或者時間周期來執行相關的任務。但是Timer需要用WakeLock來讓CPU保持喚醒狀態,才能保證任務的執行,這樣子會消耗大量流量;當CPU處於休眠的時候,就不能喚醒執行任務,所以應用於移動端明顯是不合適。

AlarmManager:AlarmManager類是屬於android系統封裝好來管理RTC模塊的管理類。悔粗銷這里就涉及到RTC模塊,要更好地了解兩者的區別,就要明白兩者真正的區別。

RTC(Real- Time Clock)實時鬧鍾在一個嵌入式系統中,通常採用RTC

來提供可靠的系統時間,包括時分秒和年月日等;而且要求在系統處於關碧游機狀態下它也能夠正常工作(通常採用後備電池供電),它的外圍也不需要太多的輔助電路,典型的就是只需要一個高精度的32.768KHz

晶體和電阻電容等。(如果對這方面感興趣,可以自己查閱相關資料,這里就說個大概)

好了,回來正題。所以,AlarmManager又稱全局定時鬧鍾。這意味著,當我用使用AlarmManager來定時執行任務,CPU可以正常地休眠,只有在執行任務是,才喚醒CPU,這個過程是很短時間的。

下面簡單來說明其使用:

1.類似於Timer功能:

//獲得鬧鍾管理器

AlarmManager

am = (AlarmManager)getSystemService(ALARM_SERVICE);

//設置任務執行計劃

am.setRepeating(AlarmManager.ELAPSED_REALTIME, firstTime, 5*1000,

sender);//從firstTime才開始執行,每隔5秒再執行

2.實現全局定時功能:

//獲得鬧鍾管理器

AlarmManager

am = (AlarmManager)getSystemService(ALARM_SERVICE);

//設置任務執行計劃

am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime,

5*1000, sender);//從firstTime才開始執行,每隔5秒再執行

總結:在android客戶端使用Push推送時,應該使用AlarmManager來實現心跳功能,使其真正實現長連接。

4. android怎麼做推送

android消息推送主要有一下幾種方式:
1.使用GCM(Google Cloude Messaging),因為採用的是google伺服器,國內不可用
2.使用XMPP協議(Openfi,re+Spark+Smark),XMPP(可擴展通訊和表示協議)是基於可擴展標記語言(XML)的協議,它用於即時消息(IM)以及在線探測。這個協議可能最終允許網際網路用戶向網際網路上的其他任何人發送即時消息
3.使用MQTT協議,MQTT是一個輕量級的消息發布/訂閱協議,它是實現基於手機客戶端的消息推送伺服器的理想解決方案
4.HTTP輪循方式,定時向HTTP服務端介面(Web Service API)獲取最新消息
5.採用第三方服務
目前最常用的是使用第三方推送平台,比如極光推送就不錯,極光推送,提供輕量級的客戶端SDK:開發者只需在客戶端集成極光推送 SDK,即可輕松地添加 Push功能到他的 App中。極光推送支持 Android、iOS、windows phone等平台,系統穩定,消息送達率高,速度快

5. android消息推送GCM、XMPP、MQTT三種方案的優劣是什麼

Android推送方案分析(MQTT/XMPP/GCM)
本文主旨在於,對目前Android平台上最主流的幾種消息推送方案進行分析和對比,比較客觀地反映出這些推送方案的優缺點,幫助大家選擇最合適的實施方案。


方案1、使用GCM服務(Google Cloud Messaging)


簡介:Google推出的雲消息服務,即第二代的G2DM。
優點:Google提供的服務、原生、簡單,無需實現和部署服務端。
缺點:Android版本限制(必須大於2.2版本),該服務在國內不夠穩定、需要用戶綁定Google帳號,受限於Google。

方案2、使用XMPP協議(Openfire + Spark + Smack)


簡介:基於XML協議的通訊協議,前身是Jabber,目前已由IETF國際標准化組織完成了標准化工作。
優點:協議成熟、強大、可擴展性強、目前主要應用於許多聊天系統中,且已有開源的Java版的開發實例androidpn。
缺點:協議較復雜、冗餘(基於XML)、費流量、費電,部署硬體成本高。

方案3、使用MQTT協議(更多信息見:http://mqtt.org/)


簡介:輕量級的、基於代理的「發布/訂閱」模式的消息傳輸協議。
優點:協議簡潔、小巧、可擴展性強、省流量、省電,目前已經應用到企業領域(參考:http://mqtt.org/software),且已有C++版的服務端組件rsmb。
缺點:不夠成熟、實現較復雜、服務端組件rsmb不開源,部署硬體成本較高。

熱點內容
sha256在線加密 發布:2025-07-12 13:19:06 瀏覽:226
vbnet創建資料庫連接 發布:2025-07-12 13:15:34 瀏覽:232
為什麼社保卡在社康還要密碼 發布:2025-07-12 13:11:42 瀏覽:811
取隨機數php 發布:2025-07-12 12:58:16 瀏覽:840
如何配置組合音響 發布:2025-07-12 12:53:54 瀏覽:93
c語言冪計算 發布:2025-07-12 12:52:36 瀏覽:566
兔費WLAN密碼多少 發布:2025-07-12 12:50:59 瀏覽:861
阿里雲分布式存儲 發布:2025-07-12 12:45:04 瀏覽:535
sql日誌壓縮 發布:2025-07-12 12:39:53 瀏覽:343
紅點角標演算法 發布:2025-07-12 12:11:16 瀏覽:844