傳統網際網路上資料互動一般有poll和push兩種方式。poll典型使用場景是瀏覽網頁,是使用者主動發起請求,向伺服器獲取資料;push剛好相反,通過伺服器直接傳送資料給客戶端,使用者被動接受訊息,類似於更加及時的簡訊。
push是網際網路上內容提供者和內容定製方之間的一種通訊機制,利用在伺服器端的程式把資料源源不斷地推向客戶端,大大提高客戶機和伺服器之間的互動性能。
如:遊戲娛樂類:玩家實時互動(有新活動、做新任務、領新裝備), 使用者隨時觸達, 喚醒沉默使用者, 提高arpu值
應用第三方推送服務的優勢:
1.伺服器主動連線客戶端,訊息毫秒級下發,推送形式多樣。
2.為不同屬性使用者打上智慧型標籤,實現精準推送和精細化運營。
3.冷熱溫資料引擎,結合地理圍欄技術精準識別使用者當下場景。
典型的使用第三方推送的應用:
android系統推送:它像是傳統桌面電腦系統做法。每個需要後台推送的應用有各自的單獨後台程序,才能和各自的伺服器通訊,交換資料。另外其實 android 也有類似 apns 的 gcm(google cloud message),屬於開發者可選,非強制。
所以你大概看出來區別,ios 的訊息推送機制面世之時是一種全新的解決方案(堪稱平台中的平台),應用本身不能有常駐的後台程序,系統的開銷少,記憶體使用更少,電量也更少(把更多的運算和資源開銷放在雲端,非裝置端)。而 android 的特點,雖然開銷大,優點是更穩定快速,但不明顯。
因為手機平台本身、電量、網路流量的限制,移動網際網路應用在設計上跟傳統 pc 上的應用很大不一樣,需要根據手機本身的特點,盡量的節省電量和流量,同時又要盡可能的保證資料能及時到達客戶端。
為了解決資料同步的問題,在手機平台上,常用的方法有2種。一種是定時去伺服器上查詢資料,也叫polling。
還有一種***伺服器之間維護乙個 tcp 長連線,當伺服器有資料時,實時推送到客戶端,也就是我們說的 push。
從耗費的電量、流量和資料送達的及時性來說,push 都會有明顯的優勢,但 push 的實現和維護成本相對較高。在移動無線網路下維護長連線,相對也有一些技術上的難度。
極光推送在 android 平台上是如何維護長連線。
本質上,apns 與 gcm 是類似的技術實現原理:即系統層有乙個常駐的 tcp 長連線,一直保持的長連線,即使手機休眠的時候也在保持的長連線。答案是:不會。這是手機的設計來做到的。tcp長連線有個心跳的時間,在國外可以很長比如30分鐘,在國內則因為網路環境複雜一般10分鐘。客戶端發起的心跳,會短暫地消耗手機電能,但在這個心跳間隔期間,則消耗電能是很少的。當在心跳期間伺服器端有推送資訊過來時,客戶端可以收到並做處理。
推送系統的各個組成要素
首先我們來看一下組成乙個推送系統的幾個要素
推送系統sdk:以jar的方式出現,整合於第三方客戶端,解析第三方下行的資料,並把結果透傳給第三方客戶端;也可以上行第三方定製的客戶端資訊。
推送系統伺服器:一側負責維護與成千上萬的sdk的長時連線,另一側與第三方伺服器對接,將第三方定製資料下行推送至個推sdk。
第三方伺服器:資料推送的發起者,通過對接個推伺服器,將資料傳送至第三方客戶端。
第三方客戶端:第三方整合sdk的客戶端,推送資料正真的接收者和展現者。
說明:clientid:用於標識客戶端身份,由第三方客戶端獲取並儲存到第三方服務端。
uid:一般為第三方系統帳號體系中的使用者標識。第三方服務端一般需要儲存uid和clientid的對映關係,進行訊息推送時,通過uid查詢到相應的clientid,便可進行定向推送了。
IOS訊息推送。
本來ios開發工程師說要使用個推,但是我們是做金融的,可能需要給使用者推送訂單狀態等等。這樣的話用起來就會很不方便,於是在網上找了找資料自己動手寫了乙個。就是簡易基礎的,希望大家看了能夠有用。需要引入幾個jar包 import com.notnoop.apns.apns import com.not...
APNS推送訊息
解釋 2.當蘋果apns推送服收到來自你應用的註冊訊息就會返回一串device token給你 很重要 3.將應用收到的device token傳給你本地的push伺服器 4.當你需要為應用推送訊息的時候,你本地的推送伺服器會將訊息,以及device token打包傳送到蘋果的apns服 5.apn...
swoole訊息推送
socket.php 注釋的部分是學習的筆記 建立websocket伺服器物件,監聽0.0.0.0 9502埠 ws new swoole websocket server 0.0.0.0 9501 監聽websocket連線開啟事件 客戶端想伺服器傳送資訊是呼叫函式 ws websocket 伺服...