1,web伺服器的搭建及注意事項
使用基于浏覽器的webrtc應用,需要有web前端頁面,由web伺服器提供服務,常用的有nginx和apache,這裡以ubuntu14.04系統上搭建apache為例。
注意:最新的webrtc僅支援HTTPS安全連接配接,是以需要支援 ssl,不使用https通路,會出現getUserMedia(擷取本地攝像頭對象)失敗。
a, apache安裝,sudo apt-getinstall apache2,安裝方法細節可參考網上資料,安裝完成後,配置檔案在/etc/apache2/apache2.conf,預設端口為80,如果有沖突可修改/etc/apache2/ports.conf,預設的根目錄在/var/www/html,可在本機或者同網絡下其它機器浏覽器輸入(假如IP位址是10.27.105.60)http:// 10.27.105.60,如果有apache頁面出來就說明OK了;
b, 生成ssl所需要證書;參考網上方法,可自己制作也可一些網站上申請。
cd /etc/apache2/
sudo mkdir cert
cd cert
把附件的兩個證書放進來(cert.key,cert.crt)。
c, 配置apache的ssl功能支援子產品
cd /etc/apache2/mods-enabled
sudo ln -s ../mods-available/ssl.conf ssl. conf
sudo ln -s ../mods-available/ssl.load ssl.load
cd /etc/apache2/sites-enabled
sudo ln -s ../sites-available/ default-ssl.conf default-ssl. conf
在default-ssl.conf檔案中找到SSLCertificateFile和SSLCertificateKeyFile兩處,并修改後面的檔案路徑為/etc/apache2/cert/cert.crt和/etc/apache2/cert/cert.key
完成後,執行sudo/etc/init.d/apache2 restart可能會失敗,如下錯誤:SSLSessionCache: 'shmcb' session cache not supported
Vi ssl.conf中把相應的行注釋掉,這樣再 restart應該就OK了
浏覽器中輸入https://10.27.105.60,預設使用433端口,如有需要,可自行修改端口,注意,有兩處需要修改:
第一處:/etc/apache2/ports.conf中ssl_module子產品中的Listen,如下,我修改為40443
<IfModule ssl_module>
Listen 40443
</IfModule>
第二處:/etc/apache2/sites-available/default-ssl.conf
<VirtualHost _default_:40443>
修改完成後,重新開機sudo/etc/init.d/apache2 restart
然後在浏覽器中輸入https://10.27.105.60:40443
不出問題應該能出來頁面。
d, 下載下傳并webrtcdemo.tar.gz解壓到/var/www/html目錄下:
下載下傳位址:http://download.csdn.net/download/yunjinwang/10037767
sudo tar –zxvf webrtcdemo.tar.gz
sudo mv webrtcdemo webrtc
完成後,在浏覽器中輸入https:// 10.27.105.60:40443/webrtc
不出問題應該會出現頁面,“歡迎使用聯彤視訊通信”的字樣。頁面會檢測本機的攝像頭和麥克裝置,如果有這些裝置,則本地視訊會出現視訊内容,如果沒有視訊裝置可安裝虛拟攝像頭裝置。https://pan.baidu.com/s/1dE2yl1Z
2,信令伺服器的搭建及注意事項
A, 由于DEMO中使用的信令服務端采用js編寫,需要安裝nodejs到伺服器上,版本不同可能會有一些問題,可http://pan.baidu.com/s/1qXNaDIW下載下傳解壓後,将node配置到PATH環境使用,配置後執行node–v可檢視版本 V6.11.3;
B, 下載下傳附件服務端代碼webrtc_server.tar.gz到伺服器目錄
執行node index.js會列印listen on 40444,這是信令服務端監聽的40444端口,可進入index.js中進行修改,記得同時要個性前面webrtcdemo/js/main.js中的相應該位置值;
這個信令服務端信是一個簡易的信令互動系統,可進行擴充。具體過程可參考C/S代碼。
3,TURN伺服器的搭建及注意事項
環境:Ubuntu 14.04,單網卡
IP位址 10.27.105.60
安裝方法:
# sudo apt-get install rfc5766-turn-server |
啟動turnserver
# ./turnserver -c /etc/turnserver.conf |
-c後面是指定的配置檔案
配置說明:
配置檔案在/etc/turnserver.conf
使能基礎的stun功能,需要增加配置項:
external-ip= 10.27.105.60 |
使能TURN的relay功能,開啟long-term credential和realm,并且指定靜态的使用者名密碼
明文的使用者名密碼
user=media1:mediatest1 user=media2:mediatest2 |
加密的
#turnadmin -k -u media1 -p mediatest1 -r liantong.com user=media1:0x8499785f1a6c5ae070116302f6c80136 |
設定realm,這個很關鍵,否則client端無法進行注冊
realm=liantong.com |
公網映射總結
在入口路由器處做端口映射,整體網絡拓撲如下圖所示:
圖1 TURNserver網絡拓撲
在公網環境下的部署,需要注意:
external-ip配置項寫成 public ip/private ip的格式
本例中,該項配置為:
external-ip=218.106.117.18/10.27.105.60 |
relay-ip項不需要設定,由external-ip的配置伺服器自動處理
relay端口組,需要設定為端口映射的端口組
本例中,該項配置為:
min-port=59100 max-port=59130 |
4,示範方法
Web、signaling、Turn伺服器搭建好後,找兩台有攝像頭的PC,安裝支援webrtc的浏覽器,目前使用最新的chrome\firefox\360極速浏覽器是可以的,都驗證過。
在浏覽器位址欄輸入https://10.27.105.60:40443/webrtc,“目前使用者ID”能配置設定到ID,說明信令伺服器工作OK,本地視訊有圖像說明本浏覽器支援webrtc,在另外一台PC上同樣輸入上面的網址,能配置設定到另外一個ID,在“請輸入對方ID”框中輸入對方的ID,點選startàcall就可進行視訊通話了,理論上“遠端視訊”中會出現對方的圖像。
注意:重新整理頁面如果彈出來“請求攝像頭、麥克”等通知,請選擇“允許”。
由于https是的證書過期,可能會出現通路受限,拿不到自己的ID,請baidu下解決。