Android訊息推送解決方案

2021-07-10 09:27:09 字數 989 閱讀 4052

怎麼定位gps座標佔時不考慮,我們來分析下服務端打折優惠資訊是怎麼推送給手機客戶端的。

一、訊息推送基礎

如何使客戶端能夠實時的收到伺服器的訊息和通知,總體來說有兩種方式,

第一種是客戶端使用pull(拉)的方式,就是隔一段時間就去伺服器上獲取一下資訊,看是否有更新的資訊出現。

第二種就是 伺服器使用push(推送)的方式,當伺服器端有新資訊了,則把最新的資訊push到客戶端上。這樣,客戶端就能自動的接收到訊息。

雖然pull和push兩種方式都能實現獲取伺服器端更新資訊的功能,但是明顯來說push方式比pull方式更優越。因為pull方式更費客戶端的網路流量,更主要的是費電量,還需要我們的程式不停地去監測服務端的變化。

二、幾種常見的解決方案實現原理

1.輪詢(pull)方式:客戶端定時向伺服器傳送詢問訊息,一旦伺服器有變化則立即同步訊息。

2.sms(pull)方式:通過攔截sms訊息並且解析訊息內容來了解伺服器的命令,一旦伺服器有變化則立即同步訊息。這種方式一般使用者在經濟上很難承受。需要簡訊平台配合。

3.持久連線(push)方式:客戶端和伺服器之間建立長久連線,這樣就可以實現訊息的及時行和實時性,缺點不穩定。

4.c2dm雲端推送方案

在android手機平台上,google提供了c2dm(cloudto device messaging)服務。android cloud to device messaging (c2dm)是乙個用來幫助開發者從伺服器向android應用程式傳送資料的服務。該服務提供了乙個簡單的、輕量級的機制,允許伺服器可以通知移動應用程式直接與伺服器進行通訊,以便於從伺服器獲取應用程式更新和使用者資料。

該方案存在的主要問題是c2dm需要依賴於google官方提供的c2dm伺服器,由於國內的網路環境,這個服務經常不可用。

5.xmpp協議實現android推送

6.使用第三方平台

目前國內、國外有一些推送平台可供使用,但是涉及到收費問題、保密問題、服務質量問題、擴充套件問題等等,又不得不是我們望而卻步。

android推送解決方案

應用程式應當階段性的與伺服器進行連線並查詢是否有新的訊息到達,你必須自己實現與伺服器之間的通訊,例如訊息排隊等。而且你還要考慮輪詢的頻率,如果太慢可能導致某些訊息的延遲,如果太快,則會大量消耗網路頻寬和電池。在android平台上,你可以通過攔截sms訊息並且解析訊息內容來了解伺服器的意圖,並獲取其...

訊息推送應用場景與解決方案

作為開發者,不要有需求就接,應該多思考 多理解使用者 功能的使用場景,有助於我們更好地去選擇合適的開發方式 3.1 作業系統有自身的訊息推送功能 系統級別 3.2 推送的本質與原理 主動獲取方式 pull 客戶端隔固定時間主動向伺服器獲取資訊,看是否有更新的資訊 若有更新資訊,則傳送到客戶端 被動接...

Android實現本地推送通知的解決方案

廢話不多說,直接進入正題.一 自己寫 建立通知,可以參考以下 notificationmanager nm notificationmanager getsystemservice context.notification service string title 通知標題 string conte...