信令服务和媒体服务
本節(jié)主要介紹WebRTC音視頻服務(wù)端的處理
通過前面的例子我們知道運(yùn)行WebRTCDemo即可看到P2P的效果,實(shí)際應(yīng)用中我們不可能讓用戶自己去里面設(shè)置對(duì)方的IP和音視頻端口,
而且即使設(shè)置了對(duì)方的IP和端口也不一定能運(yùn)行起來,因?yàn)镻2P如果雙方不在同一個(gè)網(wǎng)段則還需穿透NAT,那服務(wù)端具體該如何部署呢?
1、信令服務(wù):
想知道信令服務(wù)的作用前您先想想通訊雙方彼此都不知道對(duì)方在哪里,怎么與對(duì)方建立連接,怎么給對(duì)方發(fā)起視頻請(qǐng)求?
想到這里我們是不是會(huì)想到雙方都應(yīng)該先跟一個(gè)服務(wù)器建立連接,所以這就是信令服務(wù)的作用,具體如下圖:
2、打洞服務(wù):打洞的原理理解了其實(shí)很簡(jiǎn)單,主要思路就是通過STUN服務(wù)器獲取自己的ip,port及NAT信息,
然后通過信令服務(wù)器交換這些信息,最后兩客戶端根據(jù)各自得到的ip,port,NAT信息進(jìn)行相應(yīng)的穿透,
現(xiàn)在開源STUN代碼很多,網(wǎng)上也有很多介紹這方面的問題,有興趣的可以找相關(guān)資料看看.
補(bǔ)充:不過對(duì)NAT進(jìn)步一研究你會(huì)發(fā)現(xiàn)內(nèi)網(wǎng)下多重NAT穿透是個(gè)比較麻煩的事情,網(wǎng)上有一些專門研究多層NAT穿透的論文,
正因?yàn)镾TUN方式不能完全解決P2P問題,所以后面出現(xiàn)了ICE,而libjingle就是ICE思想的具體實(shí)現(xiàn)。
3、媒體轉(zhuǎn)發(fā)服務(wù):P2P失敗時(shí),客戶端先將RTP包發(fā)給媒體服務(wù),然后再通過服務(wù)器轉(zhuǎn)發(fā)給對(duì)方,
實(shí)際上很多視頻會(huì)議都是這么實(shí)現(xiàn)的,在多人視頻通訊的情況下如果都通過P2P來實(shí)現(xiàn)則會(huì)給客戶端帶來很大的壓力,
特別是手機(jī)端負(fù)載有限的情況下,這宗點(diǎn)點(diǎn)的轉(zhuǎn)發(fā)方式的弊端尤為明顯,但如果通過RelayServer,客戶端壓力可大大減輕。
補(bǔ)充:如果要考慮多人視頻,直播,如三方會(huì)議同時(shí)廣播給幾千人觀看,這就設(shè)置到服務(wù)端的編解碼,混音,屏幕疊加等等功能,
這是一個(gè)比較負(fù)責(zé)的課題,也是語(yǔ)音通信廠商的核心技術(shù),后面會(huì)整理一篇文章專門介紹這方面的內(nèi)容。
總結(jié)
- 上一篇: 二级下拉菜单布局(纵向、横向)
- 下一篇: 密码学原语如何应用?解析单向哈希的妙用|