16. 消息通道

16.消息通道

16.1. 概述

消息: 是通過消息通道傳遞的數據。消息包括兩類: 普通消息和指令消息
普通消息: 僅僅用於消息展示,如聊天信息。
指令消息: 是普通消息的擴展,既可以展示,又代表一定的業務意義,接收方需要根據需要對指令消息進行響應。
消息結構:

    {
            'name':'xxx',
            'icon':'xxx',
            'id':'xxx',
            'content':'xxx',
            'msgType':'normal'
    }

name 發送者的暱稱
icon 發送者頭像
id 發送者編號(業務層面理解,如用戶id)
content 發送的消息內容,可以是文本(如聊天內容),或對象
msgType 消息類型,省略該屬性,或者值爲 normal 表示發送的是普通消息(聊天消息)。當收到指令消息時,如果與自身相關則做出響應,否者忽略。


16.2.直播開始通知

用於直播開始通知。

  • 請求
    直播開始時,系統會向左右在直播界面的客戶端發送一條直播開始的通知。
    通知通過該直播課程的聊天消息通道發送。
    結構如下:

    {"name":"管理員","icon":null,"id":"43","content":"直播開始了","msgType":"live_start"}

msgType 元素,值爲“live_start”

  • 客戶端行爲指南

客戶端(PC或移動頁面等)收到消息後,如果判斷存在msgType=live_start的屬性,則啓動播放器播放直播流。

該消息可以直接在聊天界面顯示,無需特殊過濾。


16.3. 視頻互動

視頻互動前,互動雙方需要通過消息通道進行協商,建立雙方視頻互動的連接。
本小節定義視頻互動建立連接的協商過程。
我們將視頻互動的雙方分別叫發起方響應方。 首先發起互動邀請的一方叫發起方,另一方叫響應方。

協商流程:

    1)發起方向響應方發起互動邀請
                發起方------->響應方
    2)響應方向發起方發送互動響應
                響應方-------->發起方
    3)發起方開啓互動
             發起方------->響應方

協商協議
1)發起方向響應方發起互動邀請
發起方------->響應方

        {
                'name':'王老師',
                'icon':'xxx',
                'id':'xxx',
                'content':'王老師邀請大家參與視頻互動!',
                'msgType':'meeting_req'
        }

業務處理: 響應方收到該消息後,首先判斷終端環境是否具備視頻互動條件,如果具備則顯示一個“申請互動”的按鈕,等待點擊。 點擊按鈕後進入下一步流程。

2)響應方向發起方發送互動響應
響應方-------->發起方

        {
                'name':'小明同學',
                'icon':'xxx',
                'id':'xxx',
                'content':'小明同學申請視頻互動!',
                'msgType':'meeting_res'
        }

業務處理:發起方收到該消息後,應當將該用戶頭像加入申請用戶的列表。點擊用戶頭像進入下一步流程。

3)發起方開啓會議
發起方------->響應方

        {
                'name':'王老師',
                'icon':'xxx',
                'id':'xxx',
                'content':{'id':'xxx','name','myname','room':'xxx','pwd':'xxx'},
                'msgType':'meeting_begin'
        }

這裏content是一個對象,包含允許互動用戶的id和互動的房間號等。
id 允許互動的用戶id
room 互動的房間號碼
name 互動的姓名
pwd 互動的密碼

業務處理:響應方收到該消息後,拉起視頻互動界面,傳入房間號、帳號、密碼參數給視頻互動系統,開始互動,
應確保將返回的content對象參數原樣傳遞給信令服務器。

其他消息:
1)取消互動申請
發送互動申請的用戶可以取消申請。
響應方-------->發起方

        {
                'name':'王老師',
                'icon':'xxx',
                'id':'xxx',
                'content':'xxx',
                'msgType':'meeting_res_cancel'
        }

業務處理: 發起方收該消息後便知道用戶撤銷了互動申請,應將用戶從申請列表中去掉。

2)終止互動
發起方隨時可以終止互動。
發起方------->響應方

        {
                'name':'王老師',
                'icon':'xxx',
                'id':'xxx',
                'content':'xxx',
                'msgType':'meeting_end'
        }

業務處理: 響應方收該消息後立即退出互動。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章