日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

技术分享|手机推送原理剖析指南

發布時間:2023/12/4 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 技术分享|手机推送原理剖析指南 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


源寶導讀:本文旨在對手機推送原理進行剖析和闡述,對業務開發做一些方向性的解惑。

一、手機推送的基本概念?——什么是手機推送?

  • 百度詞條:手機推送服務是指服務器?定向將信息實時送達手機的服務

詞條中有2組概念:

第一組是“服務器”和“手機”,說明了一條推送消息從哪里啟程(服務器),到哪里是終點(手機);

第二組是“定向”和“實時”,說明推送是可以指定接收者的,并且到達的速度非常快!

我們平時所說的“推送”,“通知”,“app推送”,“推送服務”,“通知消息”,“通知欄消息”等等,指的都是同一個。

1、在蘋果手機中的樣式

2、安卓手機中樣式

3、推送原理

由于移動網絡的限制,服務器并不能在沒有連接的情況下主動發送信息到移動端。所以推送本質上都是由手機設備發起,與推送服務器建立起連接通道(TCP長連接),通道就是保障推送到達的關鍵。

在iOS系統中,推送服務器是由蘋果公司維護,所有的應用均使用Apple 推送通知服務 (APNs) 來實現。

在android系統中,海外有谷歌的GMS,用于推送。GMS全稱為GoogleMobile Service,即谷歌移動服務。當然由于眾所周知的原因,國內是使用不上的。

APNs和GMS的推送原理基本一致,通過系統建立推送通道,所有應用均使用該通道,推送信息由該通道進行分發:

其中系統接收到推送信息有兩種可做的行為,一種是通知,一種是透傳。

通知:系統只負責彈出下拉欄列表,需要用戶點擊才能喚醒應用。

透傳:系統將信息投遞給相關的應用,應用實時收到信息,可以進行業務邏輯,前提是應用未被殺死。

它們的關系如下:

iOS系統由于國內可用APNs服務,所以到達率相當穩定。而android系統沒有統一的推送,導致發展較為緩慢,大致可以分為三個階段:

1、混沌期

Android早期版本對于app限制極少,app可以在后臺一直活著,甚至被殺還能被自動拉起。這時候很多app建立了自己的長連接推送:

這時候自建推送的技術門檻還是挺高的,維護成本也高,用戶體驗也不好,經常出現性發熱卡頓等情況,還會偷偷的上傳用戶行為,畢竟這和植入一個木馬區別也不大。

2、門派林立期

隨著android系統權限的收縮,很少有應用可以在后臺活著了,很多應用根本就活不久。加上這時候各大廠已經形成了自己的體系,比如企鵝系,阿里系等等,大廠間的基礎設施逐漸完善,應用活不久沒關系,只要用戶用了派系中的一個還是可以相互喚醒的。

而其他應用則可以抱團使用第三方的推送,第三方也可以實現使用同一推送間相互喚醒:

3、廠商掌權期

隨著android版本的進一步提升,廠商們開始考慮各種用戶體驗問題,喚醒鏈也不好使了。為了電量和性能,app的生存現狀堪憂。

第三方的如極光百度推送自建的推送越來越難到達了。各大手機廠商推出了自己的系統推送服務,扮演起了如蘋果般的角色。

到了這個時候,推送的原理已經APNs基本一致了。

有些廠商比較有野心,像小米除了自家的系統推送外,也支持別的手機,但是此時它的工作原理就和極光一樣,實現的是第三方推送了,所以到達率也和薛定諤的貓差不多,時靈時不靈。

小結:

到現在為止,國內擁有自主廠商通道主要有華為、小米、oppo、vivo、魅族,這幾家合計占據85%以上的android市場份額,接入這幾家廠商推送,可以保障大部分的機型推送能到達,至于其他小眾品牌,只能依賴第三方推送,第三方推送大家起點都一樣,能否到達就有點看緣分了。

推送能到達,不一定就能滿足業務場景,像網絡電話直接喚起應用的場景,在應用死亡的情況下,還是做不到的。

當然也有例外,比如微信支付寶等:

加油把自己app做到億級用戶,你也能有這樣的特權!

二、業務實踐

那么一個業務如何實現接入自己的推送呢?

簡單描述一下大致的流程:

1、推送都會生成一個設備ID,這個設備ID在一段時間內維持不變。在app啟動的時候應該就可以獲取到。

2、將這個設備ID和用戶綁定起來,做映射關系。

3、業務推送到用戶的時候,就轉換成設備ID訪問廠商推送接口。

4、廠商推送將信息送達用戶。

注意點:

1、廠商推送接口一般為http接口,每次訪問有設備數量限制,而且有些還有調用頻率限制,一個好的實踐是異步批量調用,隊列+切片是常用的做法。

2、有些廠商會提供回調接口,用來反饋到達的情況,可以看情況使用。

準備工作:

iOS:需要推送證書,在蘋果的開發者平臺向蘋果公司申請,使用時候證書和代碼實現要在一起。

Android:各個平臺要求不一樣,大致如下:

平臺

地址

需要填寫的參數

小米

https://dev.mi.com/console/appservice/push.html

XIAOMI_APP_ID、XIAOMI_APP_KEY

OPPO

https://push.oppo.com/

OPPO_APP_KEY、OPPO_APP_SECRET

VIVO

https://dev.vivo.com.cn/openAbility/pushNews

VIVO_APP_ID、VIVO_APP_KEY

魅族

http://push.meizu.com/

MEIZU_APP_ID、MEIZU_APP_KEY

可能遇到的問題:

推送收不到!

推送收不到分為2種情況,一種是從來沒有收到過推送;一種是原本推送服務使用正常,突然收不到推送了!

對于前者,一般在程序開發階段就能解決問題,相對比較簡單; 對于后者,情況就復雜一些了。針對后者出現的情況,需要做如下方向上的排查:

- 手機能否聯網,網絡是否通暢?無網時是不能收到推送的。

- 手機系統近期是否有發布新的版本,用戶更新到了新的版本?如果是,則可能需要對新版本做適應性的配置。

- APP的代碼,和服務端的代碼,近期是否有與推送功能相關的改動?如果有,請排查代碼影響。

iOS推送證書的有效期長度一般為1年,在申請時即可看到過期時間!如果使用了第三方服務,第三方僅可以保管證書,不能更新證書。因此推送證書過期后需要重新申請新的證書,并上傳到第三方。

部分第三方服務提供者,在證書過期時未能給到明顯的提示。該問題的在排查時也比較隱蔽,不易發現,因此需要多加注意。

若使用了三方的付費服務,也應該檢查余額是否充足,欠費時推送服務會被停止。不過相對于證書過期問題的提示,欠費的催繳提示會格外明顯,基本不可能被忽略!比如發送多份提醒郵件,或第三方客服直接給相關的負責人打電話提醒需要充值續費?。

如果以上情況經過排查后均沒有問題,則需要考慮一些不常見的場景和偶發性的情況,包括但不限于如下所述:

- 用戶對手機進行了恢復出廠設置,之后尚未允許授予APP推送功能權限

- 用戶對APP的推送權限進行了手動關閉

- 信號差、網絡波動導致推送明顯延遲或丟失

- 手機系統偶爾出現的bug導致推送接收失敗

- 手機系統提供商的推送服務器問題

- 其他未知原因…………

解決問題三步曲:

第一步:刪除APP,重新下載安裝后打開,在詢問是否允許授予推送權限時,點擊“允許” ,然后進行推送測試!

第二步:若第一步未能奏效,請重啟手機,然后進行推送測試!

第三步:說出來你可能不信,如果第二步仍未奏效,請刪除APP后重啟手機,重啟后下載新的APP,打開并允許接收推送,然后進行推送測試!

除此之外根據推送的原理,如果不在廠商推送的機型,是極有可能收不到的。

解決的辦法:

1、社會工程學。引導客戶設置通知權限,開啟白名單。可以提高到達率,主要機制是讓應用不死那么快,第三方(如小米)可以活著接受到推送。

Android可以參考云助手的推送設置方式:https://tenants.fdccloud.com/wzsversion/pub-view/wzshelper-for-phone-list

iOS記得給權限:

1、鈔能力。如果是強時效性的業務,建議增加短信、電話等通知。

2、努力把自己變成強勢的一方,比如每天都億級活躍用戶。

其他的問題:

特殊場景:如網絡電話等,可以和廠商談合作,但都有極高的門檻。

其他的需求歡迎咨詢移動超級app一組。

最后歡迎使用移動appcloud提供的mpush插件和對各廠商封裝的PHP-SDK

PHP-SDK:https://packagist.org/packages/yunchuang/push

mpush文檔地址:https://appcloud-static.mypaas.com.cn/plugin/readme/mpush/1.2.4/index.html

----- END ------

作者簡介

弓同學:?研發工程師,目前負責超級APP平臺相關工作。

也許您還想看:

記AWSS3在iOS端的一次改造事件

移動平臺對于跨平臺技術方案的探索

更多明源云·天際開放平臺場景案例與開發小知識,可以關注明源云天際開發者社區公眾號:

【集成】新一代集成開放平臺——星圖你了解嗎?

【建模】ERP日志分表,提升海量日志存取性能

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的技术分享|手机推送原理剖析指南的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。