在《測試妹子的吶喊:為什麼總是收不到推送?》這篇文章中,小樹解決了測試妹子收不到推送的反饋後,小樹對推送就異常感興趣,把專案裡面所有有關推送的**都閱讀了一遍。
帶著這些疑惑,小樹又找到了小黑,希望能再次得到大神的指導。
誒,有了官方推送那為什麼還要用第三方推送呢,小樹困惑地問道。
你這個問題倒是問對了,但要清楚地解釋這個問題,就必須跟你講一講推送的歷史了。小黑補充說。
其實網際網路崛起也就在 2010 年左右,在這之前是沒有推送這個概念的。而在網際網路時代,最常用的幾大平台就是:ios、android、windows phone。
說起官方推送服務,蘋果可以說是很有自己的遠見的。在 ios 系統一推出的時候就推出了 apns 服務,所有推送給使用者的通知必須要通過 apns 服務才可以送達。
「不就是乙個服務嘛,這麼大的公司應該沒啥問題吧」,小樹不屑地說。
可能一般人覺得這沒啥啊,不就乙個服務嘛。但對於乙個提供硬體廠商的公司來說,讓其來做乙個軟體服務提供商,還是有些難度的,並且還是乙個高併發量、海量使用者的乙個服務。如果服務發生了異常,那麼這個鍋可就是要蘋果背的。
你看,安卓平台可就做出了不一樣的選擇了。安卓平台在一開始推出的時候並沒有考慮到統一推送平台的問題,所以在安卓平台上是沒有乙個統一的推送解決方案的。雖然後面安卓平台也推出了自己的 gcm (google cloud messaging)推送平台,但開發者都習慣使用了自己的第三方推送服務,想改也很難了。再之,因為 google 服務長期在國內處於不可用狀態,所以開發者也就懶得改了。
因為以上許多原因,你可以看到蘋果和安卓系統在設計推送系統上的不同。這其實直接就導致了使用者在使用時的體驗。對於蘋果系統來說,因為 ios 對推送做了嚴格的規範,所以在 ios 系統上的推送**都比較規範,不敢造次。而在安卓平台上,因為沒有了具體的規範,所以經常會出現彈窗通知一大堆的情況,過度打擾了使用者。
說了這麼多東西,覺得懂了挺多東西的,但發現並沒有解決一開始提出的問題。
那到底為什麼要用第三方推送而不是用官方推送呢?小樹繼續問。
其實這個問題只問對了一半,並不完全正確。
因為 android 平台上的官方推送服務經常處於不可用的狀態。所以如果我們使用 android 平台的官方推送的話,就會使得我們的推送服務非常不安全。因為這個原因,我們只能拋棄 android 平台的官方服務。那現在只有兩條路可以走,乙個是自建推送服務,另乙個是使用第三方推送服務。
前面說到自建推送服務的難度是很高的,不僅要求開發人員有豐富的開發經驗,還要求其對網路程式設計方面的知識有深入的了解。此外,對於運維人員也有很高的要求,其必須保證服務能長時間零差錯地執行。
這樣的要求對於中小型公司來收,成本是非常高的。所以很多時候,許多公司會選擇第三方推送服務,就像我們公司一樣。
小樹這下終於明白了使用第三方推送的原因了。雖然饒了許多彎子,但知其然才能知其所依然嘛。了解多一些歷史背景和原因,才能更好地理解現在所使用的技術。
這就是許多公司為什麼選擇第三方推送的原因了。而因為 android 使用了第三方推送,一般情況下都會要求 ios 端也使用第三方推送,這是為了保持移動端實現的統一。你想一想,如果 android 用第三方推送,而 ios 端使用官方推送,那後台**豈不是要寫兩次實現?
對!保持一定的規範性是非常必要的。小樹興奮地說道。
除了技術實現難度低、統一移動端的推送之外,第三方推送平台的有點之一是能實現更多複雜的功能。
所以我們使用第三方推送的原因就是:
你的總結能力可真不錯啊,小黑豎起了大拇指。
但你還沒解釋為什麼我那個問題只問對了一半呢。(為什麼要用第三方推送而不是用官方推送呢?)
你不僅總結能力不差,記性還很厲害嘛。
在回答你這個問題之前,我先問題幾個問題。
就在小樹思考的那幾分鐘,小黑開啟了乙個小專案,模擬了一次簡單的推送。接著小黑執行了乙個 junit 測試用例,向旁邊的測試機傳送了一條推送。過了沒幾秒手機就響起了「叮叮」的推送提示聲。
小樹這下子可是丈二和尚摸不著頭腦,但是小黑卻不急著回答小樹的問題。繼續問第二個問題。
小黑還是用原先的方式傳送了一條測試推送,這次旁邊的 android 測試機卻一點動靜都沒有。
小樹這下可真的完全不知道所以然了,為什麼 ios 裝置殺掉程序後能收到推送,而 android 裝置卻不行?
小樹急的像熱鍋上的螞蟻,但小黑卻悠然自得地拿起旁邊的咖啡喝了起來。
今天還有緊急需求要做,下次我再給你講講這個問題,你先回去想一想吧。小黑這次賣了個關子。
開發小哥的困惑 為何要用第三方推送?
在 測試妹子的吶喊 為什麼總是收不到推送?這篇文章中,小樹解決了測試妹子收不到推送的反饋後,小樹對推送就異常感興趣,把專案裡面所有有關推送的 都閱讀了一遍。帶著這些疑惑,小樹又找到了小黑,希望能再次得到大神的指導。誒,有了官方推送那為什麼還要用第三方推送呢,小樹困惑地問道。你這個問題倒是問對了,但要...
第三方推送 使用推
使用的推androidclient相對來說,使用比較簡單,它提供sdk demo,根據該文件,並demo配置相關的 可以。下面是乙個示意圖推 client須要區分通知和透傳的使用,依據需求告訴服務端選擇不同的模板 服務端注意的東西相對來說比較多 個推每天的訊息推送量數以億計,統計分析日誌時,常常能夠...
IOS開發第三方庫
1.afnetworking 輕量級而又超級高效的ios網路程式設計框架,它支援ios5.0及以上版本。2.sstoolkit 非常簡單有用的工具,除了提供一些ui介面元素外,它還可以幫我們解決一些常見問題 3.gpuimage 4.socketrocket 5.hocketkit 可以使用它進行b...