接入訊息推送組件後,用戶端通過使用 mPaaS 移動網關服務,調用遠端程序呼叫(Remote Procedure Call,簡稱 RPC)網關進行裝置註冊、使用者綁定以及廠商通道的關係綁定,實現基於裝置維度和使用者維度訊息推送。不同的裝置平台對應的訊息推送流程會有所差異,下面將介紹不同裝置平台在 RPC 接入方式下的推送處理流程。
在瞭解推送流程之前,需要先瞭解訊息推送涉及的一些基本概念。
基本概念
裝置標識 (token)
訊息推送組件為每個用戶端裝置分配一個唯一標識,並根據該標識來確定訊息推送的目標:
Android 裝置使用自建長串連進行訊息推送。
iOS 裝置使用蘋果提供的 APNs 服務進行訊息推送。
推送模式
訊息推送組件提供以下推送模式:
指定裝置標識的推送
指定使用者標識的推送
不指定任何標識的群發
說明無論採用哪種模式,最終在系統內部都會映射成裝置標識。指定使用者標識的推送是Alibaba Cloud Mobile Push服務為方便與使用者的業務系統對接而提供的推送方式。由於最終要映射成裝置標識,需要應用開發人員對使用者標識和裝置標識進行綁定。推薦在使用者登入時,進行綁定,在使用者登出時,進行解除綁定。
廠商通道推送
廠商通道推送是指廠商自己的推送,能夠保證高到達率。在調用 push 的
init
進行初始化過程中,會分別向 mPaaS 和廠商推送平台申請裝置標識,在回調中分別返回 mPaaS 的裝置標識和廠商的裝置標識資訊。若要使用廠商通道推送,需要等待以上兩個裝置標識返回後,再調用 report 介面將兩個裝置標識上傳到Alibaba Cloud Mobile Push核心,此時會將兩者關聯起來,完成上述操作後才能真正使用廠商的裝置標識,否則就是普通的 mPaaS 推送。
處理流程
訊息推送服務由兩個後端系統組成:
Alibaba Cloud Mobile Push核心(Pushcore):負責處理商務邏輯以及向開發人員提供 API 介面。
Alibaba Cloud Mobile Push網關(Mcometgw):負責保持與 Android 裝置的長串連。
在請求裝置標識 (token) 部分,若是小米、華為或其他已經接入廠商推送平台的手機,還會向廠商推送平台請求裝置標識,需要等待兩個裝置標識返回,通過調用 report 介面將兩者綁定,才能使用廠商的推送通道。普通手機只需要使用 mPaaS 返回的裝置標識。
瞭解不同裝置平台對應的訊息推送接入流程:
中國內地安卓裝置
用戶端使用 RPC SDK 經由 RPC 網關直接與Alibaba Cloud Mobile Push核心進行互動。針對中國內地的安卓裝置,Alibaba Cloud Mobile Push服務提供了自建網關。整個流程如下圖所示:
其中:
應用啟動時,用戶端同Alibaba Cloud Mobile Push網關建立長連結,如果用戶端建鏈資訊中未攜帶裝置標識,Alibaba Cloud Mobile Push網關將下發裝置標識。
如果使用者開啟小米、華為等等廠商通道,且用戶端屬於這些廠商通道的機型,那麼這些廠商通道的SDK會進行初始化動作,與對應廠商的推送網關建立長串連服務並擷取廠商通道裝置標識。
擷取廠商通道裝置標識後,用戶端調用裝置上報 RPC 介面,上報廠商通道裝置資訊。
應用使用者在用戶端上發起登入。
服務端收到使用者登入請求,使用者登入成功,可以選擇在此時向Alibaba Cloud Mobile Push核心發起使用者和裝置綁定請求。
服務端發起推送請求。
Alibaba Cloud Mobile Push核心擷取到推送請求,Alibaba Cloud Mobile Push核心根據推送類型進行區分:
若按裝置推送,則直接調用Alibaba Cloud Mobile Push網關下發訊息。
若按使用者推送,則根據請求中的使用者標識擷取與之連結的裝置標識,然後調用Alibaba Cloud Mobile Push網關下發訊息。
Alibaba Cloud Mobile Push網關下發訊息。
訊息下發成功後,用戶端會向Alibaba Cloud Mobile Push網關確認已收到訊息,如果使用者配置了回調介面,Alibaba Cloud Mobile Push核心會給服務端回執。
用戶端在使用者主動退出登入時調用解除綁定 RPC 介面。
蘋果及國外安卓裝置
國外安卓的推送網關採用Google的 GCM/FCM 服務,蘋果的推送網關採用蘋果的 APNs 服務,此處以蘋果裝置為例。
用戶端使用 RPC 經由 RPC 網關直接與Alibaba Cloud Mobile Push核心進行互動。整個流程如下圖所示:
其中:
用戶端擷取蘋果下發的裝置標識。
用戶端調用上報裝置 RPC 介面經由 RPC 網關向Alibaba Cloud Mobile Push核心上報裝置資訊。
應用使用者在用戶端上發起登入。
使用者登入成功後,可以選擇在此時調用綁定 RPC 介面經由 RPC 網關向Alibaba Cloud Mobile Push核心發起使用者和裝置綁定請求。
服務端向Alibaba Cloud Mobile Push核心發起推送請求。
Alibaba Cloud Mobile Push核心擷取到推送請求,並根據推送類型進行區分:
若按裝置推送,則直接調用 APNs 服務下發訊息。
若按使用者推送,則根據請求中的使用者標識擷取與之綁定裝置標識,然後調用 APNs 服務下發訊息。
訊息下發成功後,用戶端會向Alibaba Cloud Mobile Push核心確認已收到訊息,如果使用者配置了回調介面,Alibaba Cloud Mobile Push核心會給服務端回執。