回覆列表
  • 1 # atpdt2608

      推送的基本原理其實類似,其實就是透過手機和伺服器之間的Socket維持一個TCP長連線,透過這個長連線來實現伺服器和客戶端之間的通訊。所以推送服務的提供商都會同時提供一個庫來供第三方引用,這個嵌入的庫會幫助第三方應用維護和伺服器之間的連線,包括許可權校驗,斷開重連等的工作。這樣暴露給第三方開發者的就是一個簡單的介面了,開發人員不必關心網路的斷開與重連,以及心跳檢測等各種複雜的技術問題。當然,除此以外,這些潛入的庫往往還會封裝一些其他的介面,比如幫助你收到訊息後顯示在通知欄,展示頁面,甚至啟用你的應用,傳遞資料到應用並顯示在應用中的某個介面等。這些功能都可以極大的簡化app開發的工作,有人問我推送和簡訊有什麼區別,我想這些擴充套件的功能就是和簡訊最大的區別吧。至於,之前那個朋友使用HTTP方式輪詢之所以會出現耗電耗流量的情況也是有原因的,因為HTTP請求最終其實還是透過TCP協議實現的,只不過它的TCP連線是短連線,握手非常頻繁,所以自然就比較耗電,而且HTTP方式是基於文字方式進行通訊的,因此協議冗餘比較大,流量消耗自然就大了。而且輪詢方式帶來的問題是,在兩次輪詢之間的時間間隔內是沒辦法拿到伺服器下發的訊息的。因此,實時性會大打折扣。而長連線就沒有這些問題,而且還有個好處,就是當你的應用即使不活躍也沒關係,你也可以有辦法觸達,提升活躍度。當然,長連線也會有它的問題,就是開發的難度較大。而且,手機應用的一個特點是移動,大家都是帶著手機跑的。所以,當你跑進電梯或者隧道的話,如果訊號不好連線就會斷掉,這個時候程式就得重新連線,這就無形中增加了這個東西的難度。

  • 中秋節和大豐收的關聯?
  • 怎樣還原word中預設設定版式?