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"

    成功!!

    踩了不少坑,连续研究了一晚上,第二天一早爬起来,终于完成。

最新文章

  1. c#中多线程同步Lock(锁)的研究以及跨线程UI的操作
  2. 《JAVA学习笔记(1---13-4)》
  3. bzoj1922
  4. android 13 5种click事件不同实现方式 比较
  5. 微信H5支付网络环境未能通过安全验证,请稍后再试(获取终端ip )
  6. ClassLoader原理
  7. 01背包问题(Java实现)
  8. jersey+maven构建restful服务
  9. 微信屏蔽APP分享链接的解决方案原理,剖析微信域名防封技术
  10. centos7安装sonarqube6.7 代码质量管理平台
  11. Python 汉字转拼音
  12. maven学习之pom.xml或settings.xml对nexus的配置(转)
  13. 小米note3的开发者选项在哪里?怎么进入开发者模式?如何显示布局边界?
  14. django ORM聚合函数
  15. 学习BOS物流项目第十天
  16. phd文献阅读日志-博一上学期
  17. SQL Server数据库 优化查询速度
  18. Highchar.js插件提示框千分位显示为空格而不是逗号 --(2018 08/06-08/12周总结)
  19. 使用Hugo搭建个人博客站点
  20. 简易版jquery

热门文章

  1. 吃透KVM创建虚机和KVM命令
  2. Spring Boot 2.5.0 重新设计的spring.sql.init 配置有啥用?
  3. [刷题] 343 Integer Break
  4. Linux 用 ps 與 top 指令找出最耗費 CPU 與記憶體資源的程式最占cpu的进程
  5. Sql Server 课堂笔记
  6. 利用S3fs在Amazon EC2 Linux实例上挂载S3存储桶
  7. ScreenToGif: 屏幕录制神器
  8. Python基础之变量、输入、输出
  9. 物联网设备OTA软件升级之:升级包下载过程之旅
  10. [leetcode] 872. 叶子相似的树(周赛)