標籤:android 訊息推送 pull push
1.瞭解使用戶端能夠即時收到伺服器端的方式:第一種是用戶端使用Pull(拉)的方式,就是隔一段時間就去伺服器上擷取一下資訊,看是否有更新的資訊出現。第二種就是 伺服器使用Push(推送)的方式,當伺服器端有新資訊了,則把最新的資訊Push到用戶端上。這樣,用戶端就能自動的接收到訊息。
2.幾種常見的解決方案實現原理
1)輪詢(pull)方式:用戶端定時向伺服器發送詢問訊息,一旦伺服器有變化則立即同步訊息,但是輪詢的頻率太慢可能導致某些訊息的延遲,太快則會大量消耗網路寬頻和電池;
2)SMS(push)方式:通過攔截SMS訊息並且解析訊息內容來瞭解伺服器的命令,但這種方式一般使用者在經濟上很難承受,需要依賴於電訊廠商;
3)用戶端和伺服器端之間建立長久串連,這樣就可以實現訊息的及時性和即時性;
3.對於大量的資料推送,且不需要及時推送,則輪詢比較適用。利用整合Service組件的類來進行定義、實現。
4.長期串連中第三方的訊息推送方式,則適用於及時推送,資料量並不是很大的訊息推送,因為訊息推送需要依賴於第三方的伺服器來進行轉寄,如果第三方的伺服器奔潰則您的訊息推送也會受到影響,可能這種情況發生的並不會多吧。對於第三方的訊息推送方式我也有所研究,主要研究了極光訊息推送和百度雲訊息推送。其實這兩種方式是差不多的,都是自己封裝的一個方法,進行訊息推送,想要學習的可以到其官網上進行註冊開發人員帳號進行研究,可以在官網上下載demo進行研究,因為方法已經封裝好,用起來也不是很難,有意願的可以進行一下研究,但是注意,該方式的訊息推送需要依賴於第三方進行轉寄。
5.當然要想要安全與及時的進行訊息推送,還是需要自己去進行相關協議的瞭解,自己封裝方法來進行訊息推送。一般可以使用的協議有:MOTT協議、XMPP協議。
1)MQTT是一個輕量級的訊息發布/訂閱協議,它是實現基於手機用戶端的訊息推送伺服器的理想解決方案。
2)XMPP(可擴充通訊和表示協議)是基於可延伸標記語言 (XML)(XML)的協議,它用於立即訊息(IM)以及線上探測。這個協議可能最終允許網際網路使用者向網際網路上的其他任何人傳送立即訊息。Google官方的C2DM伺服器底層也是採用XMPP協議進行的封裝。據說這個協議是一種比較合適的訊息推送的協議,有意者也可以研究一下,本人小菜鳥也在研究中,但是還是沒有什麼頭緒,糾結......
最後,說一下,可能有些人認為我說的都是一些廢話,我只是想給那些和我一樣的小菜鳥一個思路吧,這也是我研究後總結的。
Android 訊息推送