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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

厂商 push 不通排查指南

發(fā)布時間:2024/8/23 编程问答 70 豆豆
生活随笔 收集整理的這篇文章主要介紹了 厂商 push 不通排查指南 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

簡介:?MPS 集成多個三方渠道,保障 push 使命必達的必須知道的幾件事。

?

為了提升「MPS 消息推送」的推送的到達率,mPaaS 集成了華為、小米等廠商的推送功能,從而有效地提高用戶留存率,提升用戶體驗。在日常運維過程中,發(fā)現(xiàn)少部分設(shè)備在廠商 push下無法 push,在此分享下相關(guān)案例的排查過程,方便后續(xù)同類問題借鑒。

一、push 相關(guān)背景

1.push 整體架構(gòu)

以接觸最多的國內(nèi) Android 設(shè)備為例,整體結(jié)構(gòu)如下:

?

2.廠商 push 和自建 push

廠商 push 通道:優(yōu)點是通過各個 OS 廠商維護的長鏈接進行推送,在 App 被系統(tǒng)殺掉后也可以進行推送,推送到達率高于自建push。支持華為,小米,oppo,vivo等廠商。缺點是,目前廠商的push基本都只支持通知欄消息的推送,在用戶點擊通知前,不啟動應(yīng)用,對紅點, 圖片等消息格式支持有限。

自建push通道:通過App啟動后和自建服務(wù)端的長連接通道實現(xiàn)推送,缺點也很明顯,App被殺掉后,就無法收到信息。主要用于不支持廠商渠道場景下的push。

二、問題排查舉例

通過上面的介紹,可以看出三方廠商 push 是否成功,主要取決于三個鏈路,分別為:

  • 三方 token 正確生成上報
  • 服務(wù)端正常轉(zhuǎn)發(fā)到廠商服務(wù)器
  • 下發(fā)到客戶端消息可以正常顯示
  • 1.測試準備

    為了快速驗證問題,我們需要準備一個推送程序,可以快速推送信息到App上。MPS提供了推送的Http接口供外部調(diào)用,我們可以通過初始化一個簡單的java程序?qū)崿F(xiàn)推送信息的發(fā)送,方便聯(lián)調(diào)。使用鏈接

    2.三方 token 生成階段

    目前 mPaaS 對三方廠商 push 的 token 生成分為以下步驟。

    2.1 設(shè)備在三方push的廠商列表里

    以華為設(shè)備為例,判斷是否是華為設(shè)備的標準是,檢測當前手機是否是 emui,如果是才走華為 PUSH SDK。在我們?nèi)粘_\維的 case 中,發(fā)現(xiàn)過部分設(shè)備由于刷機或者其他操作,在華為手機上安裝的不是 emui,類似這種設(shè)備是走不了華為 push 的,只能走自建 push。

    以vivo設(shè)備為例,低版本手機只有在vivo公布的白名單設(shè)備內(nèi)才支持推送。

    ?

    2.2 生成三方 token

    在調(diào)用 push sdk 生成 token 的過程中,由于 push sdk 的生成也依賴當前手機的 room 版本,以華為為例,就強依賴華為手機內(nèi)置的 HMS Core 版本。針對這種場景下的問題,在獲取三方 token 失敗的時候,會在回調(diào)里返回對應(yīng)錯誤碼。如下圖所示,搜索 push 的關(guān)鍵字 mPush14,然后過濾,可以獲取 token 返回錯誤碼2。

    ?

    我們查看華為定義的錯誤碼,發(fā)現(xiàn)2表示 SERVICE_VERSION_UPDATE_REQUIRED,需要升級當前的 HMS 版本。

    ?

    升級HMS版本的方案有兩個

    方案1:主動升級,調(diào)用更新服務(wù)接口,升級更新效果如下所示:

    在啟動階段調(diào)用如下服務(wù),安裝更新華為推送服務(wù) if (HuaweiApiAvailability.getInstance().isHuaweiMobileNoticeAvailable(context) == ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED) {// 需要升級HuaweiApiAvailability.getInstance().resolveError(activity, ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED, 1); }

    ?

    方案2: 引導(dǎo)用戶去華為設(shè)置里去升級

    2.3 三方 token 正常上報

    生成 token 后會通過 RPC 接口上報到 MPS 服務(wù)端,需要檢查 RPC 接口是否有異常,上報接口是:alipay.client.yunpushcore.device.report

    ?

    2.4 token 過期

    以 oppo 為例,是在應(yīng)用第一次啟動時注冊生效,后在刷機、還原手機(設(shè)置-其他設(shè)置-還原手機)、卸載應(yīng)用時會失效,需要重新注冊才能推送。

    ?

    3.服務(wù)端投送階段

    3.1 消息包含了紅點,靜默,群發(fā)

    目前如果消息設(shè)置了紅點或者靜默,因為廠商 push 不支持,MPS 會自動走自建 push。

    3.2 三方服務(wù)端報錯

    這種主要用作 mPaaS 服務(wù)端推送到三方服務(wù)端后,三方返回異常。這種需要去 MPS 拉取服務(wù)端報錯日志,然后核對廠商文檔解決,比如華為服務(wù)端報錯文檔。

    3.3 三方服務(wù)端限流

    以 vivo 為例,默認推送走的是運營消息,每天只能對同一個用戶推送 5 次。只有改成系統(tǒng) push 類型才能沒有這個限制。

    4. 設(shè)備顯示階段

    4.1 設(shè)備必須打開通知權(quán)限才能顯示

    比如 oppo 的通知權(quán)限默認是關(guān)閉的,需要打開通知權(quán)限,或者引導(dǎo)用戶打開后才能顯示。

    4.2 應(yīng)用包名和注冊 oppo 配置保持一致

    應(yīng)用的包名要和注冊 oppo 平臺填寫的包名要一致,不然不會顯示。

    三、其他常見問題

    1.常用日志舉例

    1.1 tag:mPush14

    主要是 mPaaS 上層應(yīng)用層日志打印,打印 push 注冊 token 相以及自建通道 push 相關(guān)信息。

    ?

    1.2 tag: mcssdk

    mcssdk 是 oppo push sdk 的日志 tag,可以查看廠商的一些日志信息,比如查看三方 token

    ?

    2.其他思路

    如果以上都解決不了,最后建議去看各個廠商的官方介紹,可能會找到一些思路。

    • oppo FAQ
    • vivo FAQ

    ?

    ?

    ?

    ?


    原文鏈接
    本文為阿里云原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。

    總結(jié)

    以上是生活随笔為你收集整理的厂商 push 不通排查指南的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。