全部產品
Search
文件中心

Mobile Platform as a Service:推送流程

更新時間:Jul 13, 2024

接入訊息推送組件後,用戶端通過使用 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服務提供了自建網關。整個流程如下圖所示:

1

其中:

  • 應用啟動時,用戶端同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核心進行互動。整個流程如下圖所示:

2

其中:

  • 用戶端擷取蘋果下發的裝置標識。

  • 用戶端調用上報裝置 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核心會給服務端回執。