您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
webrtc實戰實現端對端即p2p視頻通話-turn服務器搭建
发布时间:2022-03-20 21:05:37编辑:雪饮阅读()
安裝
turn服務器搭建這裏使用的是一個開源項目coturn,基於coturn來實現的。
我的環境是centos7.3.
下載源碼包
解壓並進入configur及make和make install
tar -zxvf turnserver-4.5.1.2.tar.gz
cd turnserver-4.5.1.2
./configure --prefix=/usr/local/turnserver
make && make install
配置
安裝完成之後要拿到一份配置文件
cp /usr/local/turnserver/etc/turnserver.conf.default /usr/local/turnserver/etc/turnserver.conf
配置文件中3478這個監聽端口配置項要放開注釋:
listening-port=3478
external-ip:要配置為你服務器的公網ip
user=test:123456(這是配置用戶名及密碼的,對應webrtc中iceServers中某個turn配置的username用戶名及credential為密碼)
cli-password=qwerty也是要放開注釋的(若不放會提示讓你設置一個什麽密碼之類的,在後面啓動turnserver時候,不過這種直接放開cli-password=qwerty的注釋的方式也是懶人的常規操作。。,同樣的我還關閉了防火墻。。。)
listening-ip与relay-ip采用内网ip
配置文件末尾要創建iceServer
IceServer turnIceServer = new IceServer("turn:公網ip:3478","用戶名","密碼");
IceServer stunIceServer = new IceServer("stun:公網ip:19302","","");
后兩個參數分別是上面配置的user項時候的用戶名及密碼,但是stun時候不用用戶名和密碼,直接提供空字符串即可。當然這應該也是根據業務需要或者它這個構造本來只是爲了語法統一。
證書
這個東西好像還是需要證書的,所以要生成證書,生成證書的路徑好像是在他的查找路徑即可。
openssl req -x509 -newkey rsa:2048 -keyout /etc/turn_server_pkey.pem -out /etc/turn_server_cert.pem -days 99999 –nodes
關閉防火墻及設置安全組
我這裏比較懶,直接關閉了防火墻。然後對於安全組則tcp要放行3478和19302端口,udp也是一樣的。
這些都是我比較懶的做法,實際上在生產環境還是要小心點。
turn服務啓動
/usr/local/turnserver/bin/turnserver -v -r 47.240.19.5 -a -c /usr/local/turnserver/etc/turnserver.conf
這裏-r參數是你的公網ip
上面這條命令是直接運行在當前shell(tty)會話窗口的。
如果要後臺運行用-o參數。
-o, --daemon Start process as daemon (detach from current shell).
剛開始可以不用後臺運行,這樣更方便查看日志,如果有錯誤能隨時看到的。
雖然這裏會有一個小警告:
WARNING: I cannot support STUN CHANGE_REQUEST functionality because only one IP address is provided
不過,好像沒有什麽影響,據説這個標準做法是你需要有兩個公網ip
turn服務驗證
turn服務驗證可以用這個在綫工具
STUN or TURN URI裏面輸入,我們這裏是turn所以輸入如:turn:47.240.19.5:3478
TURN username和TURN password就是前面我們創建turn服務器配置時候的用戶名及密碼。
添加turn服務器的提交后,勾選Acquire microphone/camera permissions(我這裏刪除了該在綫工具中默認的那個stun還是turn的服務器記錄了,只測試我自己的)后點擊Gather candidates開始驗證。一般在Acquire microphone/camera permissions下面出現的列表中Protocol Address字段中有你本地局域網ip地址也有你服務器公網ip時候一般就是ok的,最後在Priority字段最後一行好像就是出現Done就是很不錯的。
至於Gather candidates按鈕下面出現的結果中有701錯誤,這個有參考價值,但是有時候有701錯誤也不影響我們webrtc端對端視頻通話,可能目前我的接觸面不夠大,目前我還沒有看到有什麽影響。
除了上面的在綫工具進行測試外,也可以用下面這個包解壓后的一個client進行測試
像是這樣(cmd中):
D:\software\stunserver_win64_1_2_16\release>stunclient 47.240.19.5 3478
Binding test: success
Local address: 192.168.43.72:58108
Mapped address: 112.96.237.204:41716
測試webrtc端對端連接
上面turn服務器如果沒有什麽問題,則按照我們之前的流程來操作兩個端,則最後就會成功連接進行視頻通話,不過我目前是代碼中關閉了聲音的,應該沒有聲音的。
最後的效果如:
項目前端打包下載:
关键字词:webrtc,turn,coturn,centos7.3
相关文章
- webrtc實戰實現端對端即p2p視頻通話-運行環境及創建端
- webrtc實戰實現端對端即p2p視頻通話-調試環境搭建
- workerman作爲客戶端系列之socket5即s5代理搭建基於ce
- phpunit上桩函数以回调形式返回值-returnCallback
- phpunit按照参数映射断言返回值-returnValueMap
- phpunit已上桩方法返回桩件自身引用的断言-returnSelf
- phpunit方法的参数断言returnArgument
- phpunit中willReturn的完全体
- 关于php500错误communication error(return code 0或re
- centos7.3下快速配置(宝塔)nginx1.12网站https(ssl)访