官术网_书友最值得收藏!

4.3.2 信令時序

表4.1中的信令已經(jīng)足夠簡單了,共8個信令。這8個信令還是比較好理解的,例如,當(dāng)用戶要進(jìn)行通信,加入“房間”時,會向信令服務(wù)器發(fā)送join信令。信令服務(wù)器收到該信令后,先將該用戶加入服務(wù)器管理的房間里,然后向客戶端返回joined信令,表示該用戶已經(jīng)成功加入房間了。這就是join信令與joined信令的作用,一個用于請求加入房間,另一個用于成功應(yīng)答。其他的信令與這兩個信令是類似的。

圖4.3清楚地表達(dá)了各信令之間的時序關(guān)系。在發(fā)送信令之前,各端要先與信令服務(wù)器SigServer建立連接。連接建立好后,終端Caller會向信令服務(wù)器發(fā)送join消息,服務(wù)器收到該消息后,返回joined消息,表示該用戶已經(jīng)成功加入房間;當(dāng)?shù)诙€終端Callee1成功加入后,第一個終端Caller還會收到otherjoin消息,表示第二個用戶也成功加入了;之后,Caller與Callee1進(jìn)行媒體協(xié)商(媒體協(xié)商會在第5章介紹),即通過message消息交換WebRTC需要的ofer/answer等內(nèi)容;當(dāng)媒體協(xié)商成功后,雙方就可以進(jìn)行音視頻通信了;如果此時有第三個用戶Callee2請求加入,信令服務(wù)器發(fā)現(xiàn)房間里已經(jīng)有兩個用戶了,則會給Callee2返回full消息,告訴它當(dāng)前房間已滿,不能再加入了。

同樣地,在用戶離開時,需要向服務(wù)器發(fā)送leave消息,服務(wù)器收到后返回left消息??蛻舳耸盏絣eft消息說明服務(wù)器已經(jīng)將它從房間中移除了。同時,服務(wù)器還會向另一方發(fā)送bye消息,通知它與它通話的用戶已經(jīng)走了,可以釋放相關(guān)的資源了。以上就是信令的時序和它們之間的邏輯關(guān)系。

圖4.3 信令時序圖

主站蜘蛛池模板: 大方县| 馆陶县| 噶尔县| 阆中市| 正宁县| 桐乡市| 永新县| 永德县| 东乌| 台安县| 克什克腾旗| 广宗县| 衢州市| 崇左市| 简阳市| 都江堰市| 银川市| 饶河县| 泊头市| 昌吉市| 南木林县| 庄浪县| 哈尔滨市| 亳州市| 大港区| 什邡市| 喀喇沁旗| 汽车| 西宁市| 隆昌县| 庆安县| 斗六市| 乡宁县| 阿坝| 灵川县| 通许县| 民和| 察哈| 灯塔市| 苍梧县| 沐川县|