所謂 push 是相對於 pull 而言的。因為 http 請求並不保持連接,因此只能從客戶端往伺服器拉回信息。

要想允許伺服器往客戶端發信息必須存在一個長連接。而對手機而言,長連接太多會額外耗電。蘋果自己建立了一個長連接,所以推送信息的路線是從你的應用程序伺服器,到蘋果的伺服器,然後從蘋果的伺服器,到你的手機。

因而,顯然,你的手機能不能收到推送,與你的應用程序是否退出沒關係,推送是在目標伺服器與蘋果的伺服器之間進行的。而長連接是你的手機系統與蘋果之間建立的。與手機上的應用程序沒關係。

至於 google 也有類似的機制,不過具體情況就說來很複雜了,因為那被封殺被抹黑的歷史。。。
先回答第二個問題:推送都是單向的,只能是 App 給你推送信息,如果你想產生交互是必須要再進入 App進行聯網操作。此外推送信息的信息量很小,且僅支持文字,這樣就算一直給你推送新聞你看著也不爽吧?還是要打開客戶端去看,因此運營商這個假設不成立。至於原理,百度谷歌真的一大把啊一大把,無論你是想開發還是先了解原理真的有很多資料,不少還是中文的,所以,你懂的 :)


1、蘋果設備會和蘋果伺服器一直處於連接狀態,推送是蘋果伺服器發給蘋果設備得,蘋果設備接到消息後,根據協議會知道是哪個應用得消息。2、運營商是管道,是提供數據流量得,推送也要走運營商得數據流量,這個推送只是蘋果得一種在線接受消息得方案。簡訊,彩信支持得設備就多得去了。3、安卓得也應該與蘋果得類似,運營商會受影響,但不是致命得,因為也要依賴運營商得網路。
」大多設備可以推送.運營商怎麼辦「IP網存在找被叫難的問題,有推送機制的話,在IP網上也能找到被叫,對運營商的業務有衝擊。實際上運營商創新不足,一直在做管道,現在還在講智能管道,如果它真的把這麼多用戶資源用起來了,開發出好的移動應用,可能比互聯網公司要厲害得多


想關閉推送需要進入設置,下拉到最下面的一個區塊,找到你想關閉推送的APP(這個叫通知的東西,點進去,關閉)。退出應用和推送無關。

首先設備令牌的唯一性很重要

如:IPHONE的令牌為一個43位的字元串(英文數字混合格式).

每一個應用程序在開啟的時候.首先會在應用程序所在伺服器記錄該令牌編碼

當需要向設備推送信息的時候.只需要對令牌(所屬設備)推送即可(所以這與程序是否關閉無關)

令牌所屬設備會將信息傳遞給相應的應用程序並按照程序設定彈出信息

對於第二個問題.不太明白大多設備可以推送.這和運營商有什麼關係?
推薦閱讀:
相关文章