CentOS下配置webrtc服务器
主要參考:Ubuntu下配置webrtc服務器
————————————————————————————————————————————————
原理介紹:<以下文字copy自上文>
房間服務器
房間服務器是用來創建和管理通話會話的狀態維護,是雙方通話還是多方通話,加入與離開房間等等,我們暫時沿用Google部署在GAE平臺上的AppRTC這個房間服務器實現,該GAE App的源碼可以在github.com上獲取.該實現是一個基于Python的GAE應用,我們需要下載Google GAE的離線開發包到我們自己的Linux服務器上來運行該項目,搭建大陸互聯網環境下的房間服務器。
信令服務器
信令服務器是用來管理和協助通話終端建立去中心的點對點通話的一個角色.這個角色要負責一下任務:
- 用來控制通信發起或者結束的連接控制消息
- 發生錯誤時用來相互通告的消息
- 各自一方媒體流元數據,比如像解碼器、解碼器的配置、帶寬、媒體類型等等
- 兩兩之間用來建立安全連接的關鍵數據
- 外界所能看到的網絡上的數據,比如廣域網IP地址、端口等
信令服務器的具體協議實現沒有嚴格規定,只要實現功能就OK.
我們這里依然沿用Google提供的基于GO語言和WebSocket的信令服務器Collider.和上面的房間服務器一并在Github上可以獲取.獲取到我們自己的Linux服務器上用GO語言的運行環境來運行該信令服務器.
coturn打洞服務器
我們目前大部分人連接互聯網時都處于防火墻后面或者配置私有子網的家庭(NAT)路由器后面,這就導致我們的計算機的IP地址不是廣域網IP地址,故而不能相互之間直接通訊. 正因為這樣的一個場景,我們得想辦法去穿越這些防火墻或者家庭(NAT)路由器,讓兩個同處于私有網絡里的計算機能夠通訊起來.
TURN(Traversal Using Relay NAT,允許在TCP或UDP的連線上跨越 NAT 或防火墻. TURN是一個Client-Server協議。TURN的NAT穿透方法與STUN類似,都是通過取得應用層中的公有地址達到NAT穿透,但實現TURN client的終端必須在通訊開始前與TURN server進行交互,并要求TURN server產生"relay port", 也就是relayed-transport-address.這時 TURN server會建立peer,即遠端端點(remote endpoints), 開始進行中繼(relay)的動作,TURN client利用relay port將資料傳送至peer,再由peer轉傳到另一方的TURN client.通過服務器新產生的peer來進行數據的中轉.
ICE協議就是綜合前面2種協議的綜合性NAT穿越解決方案.
通過offer/answer模型建立基于UDP的通訊。ICE是offer/answer模型的擴展,通過在offer和answer的SDP(Session Description Protocol)里面包含多種IP地址和端口,然后對本地SDP和遠程SDP里面的IP地址進行配對,然后通過P2P連通性檢查進行連通性測試工作,如果測試通過即表明該傳輸地址對可以建立連接。其中IP地址和端口(也就是地址)有以下幾種:本機地址、通過STUN服務器反射后獲取的server-reflexive地址(內網地址被NAT映射后的地址)、relayed地址(和TURN轉發服務器相對應的地址)及Peer reflexive地址等。
搭建服務器:
? github上的appRTC源代碼工程:appRTC
? 官網配置教程:appRTC配置教程
- ?配置環境
? ? ? ? ? ? ?驗證java環境并安裝
java -version wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u102-b14/jdk-8u102-linux-i586.rpm" rpm -ivh jdk-8u102-linux-i586.rpm? ? ? ? ? ? ?配置java環境變量? ? ? ? ? ? ?安裝python-webtest
sudo yum install python-webtest? ? ? ? ? ? ?安裝npm【會附帶將依賴的nodejs一起安裝】官方安裝文檔? ? setup_9.x里面的9代表版本號第一位,可以根據所需替換。如果要卸載npm,可以使用yum remove nodejs
yum install -y gcc-c++ make curl -sL https://rpm.nodesource.com/setup_9.x | sudo -E bash - yum install nodejsnpm --version #查看npm版本安裝grunt-cli【因為我也不是很懂grunt和grunt-cli的關系,所以分別執行了一次安裝命令】
npm install -g grunt npm install -g grunt-cli- 下載源碼
s
總結
以上是生活随笔為你收集整理的CentOS下配置webrtc服务器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1.Moveit 创建六轴机械臂模型
- 下一篇: 如何实现六轴机械臂的逆解计算?