springboot+kurento+coturn+contos的視訊通訊服務搭建
-
伺服器
CentOS Linux release 7.9.2009 (Core)
-
本案例成功於20210628
-
1.預設伺服器已經有Docker,安裝kurento
##下載kurento映象 [root@wjsmc wjsmc]# docker pull kurento/kurento-media-server:latest ##將埠暴露在公網3000埠 [root@wjsmc wjsmc]# docker run -itd --name ksm -p 3000:8888 kurento/kurento-media-server /bin/bash ##測試 [root@wjsmc wjsmc]# curl \ > --include \ > --header "Connection: Upgrade" \ > --header "Upgrade: websocket" \ > --header "Host: 127.0.0.1:3000" \ > --header "Origin: 127.0.0.1" \ > http://127.0.0.1:3000/kurento ##成功則出現以下欄位 HTTP/1.1 500 Internal Server Error Server: WebSocket++/0.7.0
2.安裝coturn
[root@wjsmc wjsmc]# yum install coturn [root@wjsmc etc]# yum -y install openssl-devel libevent-devel libevent [root@wjsmc etc]# openssl req -x509 -newkey rsa:2048 -keyout /etc/turn_server_pkey.pem -out /etc/turn_server_cert.pem -days 99999 -nodes ##資訊隨便寫 [root@wjsmc coturn]# vim /etc/coturn/turnserver.conf listening-port=3478 listening-ip=私網ip external-ip=公網ip realm=公網地址 user=使用者名稱:密碼 [root@wjsmc coturn]# turnserver -r 公網地址:3478 -a -o -c turnserver.conf [root@wjsmc coturn]# ps -ef|grep turnserver [root@wjsmc coturn]# kill -9 xxxx
3.驗證turn
驗證地址STUN or TURN URI,TURN username,TURN password分別填寫
turn:你的公網地址:3478
turnserver.conf 設定的使用者名稱
turnserver.conf 設定的密碼
出現relay說明成功
4.設定kurento的coturn地址
[root@wjsmc coturn]# docker exec -it ksm bash root@539bb198252c:/# apt-get update root@539bb198252c:/# apt-get install vim root@539bb198252c:/# vim /etc/kurento/modules/kurento/WebRtcEndpoint.conf.ini turnURL=使用者名稱:密碼@ip:3478?transport=udp root@539bb198252c:/# exit [root@wjsmc coturn]# docker restart ksm
3.下載官方例項,這裡需要maven,未安裝的需要的移步安裝後回來繼續。
[root@wjsmc coturn]# yum install git [root@wjsmc kurento]# git clone https://github.com.cnpmjs.org/Kurento/kurento-tutorial-java.git [root@wjsmc kurento]# cd kurento-tutorial-java/kurento-one2one-call [root@wjsmc kurento-one2one-call]# vim ./src/main/resources/static/js/index.js ##將以下內容新增,修改進incomingCall(message),call(),兩函式中 var iceservers = { "iceServers": [ { urls: ["turn:公網ip:3478"], username: "xxxxx", credential: "xxxx" } ] }; var options = { localVideo : videoInput, remoteVideo : videoOutput, onicecandidate : onIceCandidate, onerror : onError, configuration: iceservers } ##執行專案 [root@wjsmc kurento-one2one-call]# mvn -U clean spring-boot:run -Dspring-boot.run.jvmArguments="-Dkms.url=ws://公網ip:3000/kurento"
成功!!
踩了不少坑,連續研究了一晚上,第二天一早爬起來,終於完成。