- WebRTC音視頻實時互動技術(shù):原理、實戰(zhàn)與源碼分析
- 李超編著
- 575字
- 2021-08-06 14:49:34
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 信令時序圖
- 數(shù)據(jù)庫系統(tǒng)原理及MySQL應(yīng)用教程(第2版)
- Learn TypeScript 3 by Building Web Applications
- Python快樂編程:人工智能深度學(xué)習(xí)基礎(chǔ)
- Learning RabbitMQ
- PHP+MySQL網(wǎng)站開發(fā)項目式教程
- Access 2016數(shù)據(jù)庫管
- 機器學(xué)習(xí)與R語言實戰(zhàn)
- Domain-Driven Design in PHP
- Fast Data Processing with Spark(Second Edition)
- 寫給程序員的Python教程
- Java Web開發(fā)實例大全(基礎(chǔ)卷) (軟件工程師開發(fā)大系)
- Professional JavaScript
- HTML5程序設(shè)計基礎(chǔ)教程
- Python程序設(shè)計現(xiàn)代方法
- 區(qū)塊鏈原理、設(shè)計與應(yīng)用