天天看點

技術分享| 基于RTM 實作的呼叫邀請如何添加推送功能?

RTM 實時消息服務,解決了線上實時信令的傳遞,如何配合推送服務,去做離線通知功能一直困擾着開發者,本文從 RTM 的功能以及響應機制入手,教大家如何通過RTM配合第三方推送服務來完成離線消息通知。

RTM 主要功能

  • 點對點消息與頻道消息: 向單個或多個使用者發送和接收文字、自定義格式等消息或信令類型。
  • 使用者屬性和頻道屬性: 對使用者屬性和頻道屬性進行增删改查操作,可以實作使用者标注、群公告等功能。
  • 頻道人數和成員清單: 擷取單個或多個頻道的成員人數。擷取頻道内使用者清單。
  • 查閱或訂閱使用者線上狀态: 擷取或訂閱指定使用者的線上狀态。
  • 呼叫邀請: 發送和接收呼叫邀請。

推送服務內建

為了能夠快速實作推送功能,我們用第三方極光推送來完成推送功能。

服務端

極光提供服務端REST API ,為了自身賬号的安全,需要服務端去封裝該接口,并提供給用戶端一個推送的接口服務來完成推送。

服務端提供注冊裝置的接口,友善其他裝置來呼叫該裝置的時候,可以找到對應的裝置;服務端提供删除裝置的接口,友善裝置登出,删除對裝置的綁定,防止呼叫已經不用的裝置。

用戶端

iOS和Android的內建這裡就不在叙述,詳細去看極光官網文檔。特别注意Android端,由于推送服務在不同型号裝置上表現不一緻,需要分别對不同手機廠商做适配。

RTM 實作

內建RTM SDK,前往開發者中心,跟着開發步驟進行內建。

呼叫流程

技術分享| 基于RTM 實作的呼叫邀請如何添加推送功能?

發送呼叫邀請的步驟:

  • 擷取

    ARtmCallKit

    執行個體
  • 設定

    ARtmCallDelegate

    呼叫邀請代理
  • 主叫調用

    initWithCalleeId

    建立

    ARtmLocalInvitation

    ,擷取

    ARtmLocalInvitation

    對象,此時

    ARtmLocalInvitation

    對象生命周期開始
  • 主叫調用

    queryPeersOnlineStatus

    方法來判斷對方是否線上,不線上的使用者調用自身的推送接口:把呼叫邀請消息推送給對方
  • 主叫調用

    sendLocalInvitation

    發送呼叫邀請。被叫收到

    remoteInvitationReceived

    回調,擷取

    ARtmRemoteInvitation

    對象,此時

    ARtmRemoteInvitation

    對象生命周期開始。主叫收到

    localInvitationReceivedByPeer

    回調。

接收流程

離線接收

離線場景收到呼叫邀請的推送通知後,點選推送或者點選APP啟動APP即可。然後走正常流程,初始化RTM,并登入該裝置賬号,登入RTM成功後,會收到呼叫的邀請回調,跟下面的線上流程一緻。

線上接收

注意事項

  • 主叫在發起呼叫前:使用

    queryPeersOnlineStatus

    方法先檢測對方是否線上,不線上的使用者,需要調用下推送接口去送達,同時也要調用

    sendLocalInvitation

    方法進行呼叫
  • 發起呼叫後,如果使用者一直不接收,會在30s後收到

    localInvitationFailure

    的回調,呼叫周期結束。

示例Demo

繼續閱讀