基於apprtc搭建webrtc

搭建平臺

Linux系統-ubuntu

一、安裝依賴軟件和環境

(一)阿里雲的源是阿里自己的鏡像,不需要再修改源,安裝必備軟件像 git、解壓、nodejs、python 、go語言編譯等必備的軟件

	cd ~
	sudo apt-get update
	apt-get install git unzip lrzsz nodejs npm automake autoconf libtool nodejs-legacy python-webtest golang -y

(二) java環境安裝

	cd /usr/lib/jvm/
	tar -zxvf jdk-8u191-linux-x64.tar.gz

1、下載jdk8 linux 64位版 jdk-8u191-linux-x64.tar.gz 下載地址下載完拿shell工具上傳到服務器/usr/lib/jvm路徑下,jvm 文件夾沒有的話創建後上傳。解壓jdk壓縮文件

cd /usr/lib/jvm/
tar -zxvf jdk-8u191-linux-x64.tar.gz

2、設置環境變量

	cd /etc/
	vim profile

3、打開文件,在文件末尾追加

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_191
export PATH=$JAVA_HOME/bin:$PATH 
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

4、修改後按鍵ESC ->shift+:->wq 保存並退出

5、使配置生效
source /etc/profile

6、驗證java環境

	java -version

7、如果出現如下信息則環境配置成功

java version "1.8.0_191"

Java™ SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot™ 64-Bit Server VM (build 25.191-b12, mixed mode)

(三) git下載apprtc項目倉庫,並編譯

cd ~
git clone https://github.com/webrtc/apprtc.git
cd apprtc/
git checkout v1.0

安裝編譯工具

npm -g install grunt-cli

安裝項目依賴

npm install 

如果報錯:SyntaxError: Use of const in strict mode,需要更新版本

npm cache clean -f
npm install -g n
n stable
node -v
npm install  // 再來安裝一次

還出錯

rm node_modules/ -rf 					//刪掉
npm config set registry https://registry.npm.taobao.org 			//切換淘寶源
npm info underscore			 //使其生效
npm install  // 再來安裝一次

編譯apprtc項目

	grunt build

這裏也會出現一些問題,缺少一些依賴,到相應缺少module目錄下

npm install 

若出現

requests.exceptions.SSLError

這個是證書,不需要,我們nginx來轉發就好了,使用如下方式編譯

grunt build -force 

成功

Done.with warrings 或者 Done.with out error 

###(四)修改編譯後的項目配置,源文件沒有動
修改 constants.py

cd out/app_engine/
vim constants.py

修改的部分

TURN_BASE_URL = 'https://www.域名'
ICE_SERVER_BASE_URL = 'https://www.域名
WSS_INSTANCE_HOST_KEY = 'www.域名:8089'
WSS_INSTANCES = [{
    WSS_INSTANCE_HOST_KEY: 'www.域名:8089',
    WSS_INSTANCE_NAME_KEY: 'wsserver-std',
    WSS_INSTANCE_ZONE_KEY: 'us-central1-a'
}, {
    WSS_INSTANCE_HOST_KEY: 'www.域名:8089',
    WSS_INSTANCE_NAME_KEY: 'wsserver-std-2',
    WSS_INSTANCE_ZONE_KEY: 'us-central1-f'
}]

修改 index_template.html在

1.var loadingParams = { 這一行上面添加javaScript代碼

var servers=[{
credential:"helloword",
username:"helloword",
urls:["turn:服務器外網ip:3478?transport=udp",
"turn:服務器外網ip:3478?transport=tcp",
"turn:服務器外網ip:3479?transport=udp",
"turn:服務器外網ip:3479?transport=tcp"
]
}];

修改debug.js

cd ~/apprtc/out/app_engine/js
vi apprtc.debug.js 

做出如下修改

 if (!isChromeApp()) {
	oomLink=roomLink.substring("http","https"); //新增加的
	window.history.pushState({"roomId":roomId, "roomLink":roomLink}, roomId, roomLink);
	}

2、註釋掉

//peerConnectionConfig: {{ pc_config | safe }},
//turnRequestUrl: '{{ turn_url }}',
//iceServerRequestUrl: '{{ ice_server_url }}',

3、添加

  peerConnectionConfig:{"rtcpMuxPolicy":"require","iceServers":servers,"bundlePolicy":"max-bundle"},

###安裝google_appengine 谷歌Python服務器容器,apprtc跑在上面
下載地址 選擇Standard environment下的python,下載到本地後後上傳到服務器 ~ 目錄

解壓

cd ~
unzip google_appengine_1.9.80.zip

配置環境變量

vi /etc/profile

添加變量

export PATH=$PATH:/root/google_appengine/

使其生效

source /etc/profile

創建日誌文件

mkdir logs 
cd logs
touch room.log collider.log turn.log     //創建文件
chmod 777 room.log collider.log turn.log  //修改權限

###啓動房間服務器,觀察日誌
1、觀察日誌

tail -f ./logs/room.log

2、新建立連接啓動服務器

cd ~
nohup ./google_appengine/dev_appserver.py --host 內網ip --enable_host_checking false ./apprtc/out/app_engine > ./logs/room.log 2>&1 &
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章