WebRTC搭建与应用(五)-Coturn踩坑记

WebRTC搭建与应用(五)-Coturn踩坑记

近期由于项目需要在研究前端WebGL渲染转为云渲染,借此机会对WebRTC等有了初步了解,在此记录一下,以防遗忘。

第五章 WebRTC搭建与应用(五)-Coturn踩坑记

文章目录
  • WebRTC搭建与应用(五)-Coturn踩坑记
  • 前言
  • # 一、Coturn使用
    • 1.1 问题
    • 1.2 问题排查与解决
  • 二、使用Docker部署Coturn
    • 2.1 安装Docker
    • 2.2 安装Coturn镜像
    • 2.3 配置Docker中的Coturn
  • 总结

前言

本来应该继续写PeerJS-Server使用的相关内容,但是在跨电脑测试WebRTC的过程中发现ICE服务一直有些问题,所以在此记录一下踩坑过程,希望对大家有所帮助。

# 一、Coturn使用

1.1 问题

之前按照https://blog.csdn.net/meteor1028/article/details/144290591讲解内容在Ubuntu搭建了Coturn包管理器服务形式,测试TURN服务是否连通是发现在火狐浏览器可以正确连接。
在这里插入图片描述
但是在谷歌浏览器却会出现卡死无法完成并返回relay信息的问题
在这里插入图片描述

1.2 问题排查与解决

开始在网上查找问题原因时,发现有些博主说通过Chrome浏览器自身有问题,无法通过Turn服务功能测试,我在服务器输出Coturn服务日志时谷歌浏览器连接有如下报错内容,我发现user中并没有出现我设置的用户名,所以会有401未授权的报错。
在这里插入图片描述
但是同样的服务通过火狐浏览器测试时,user中就是有用户名的,开始我也怀疑是谷歌浏览器自身的原因,但是因为轻量化渲染我们主要使用谷歌浏览器,所以还是想尝试查找一下问题原因,我就开始研究Coturn服务的相关参数。
经过排查发现在启动Coturn服务时,如果不调用-r命令参数即realm设置,谷歌浏览器就无法正确穿透返回。
所以启动Coturn服务时一定切记要加上-r设置才可以。
turnserver -r ip:3478 -c /usr/local/coturn/etc/turnserver.conf
加上-r设置后重启服务在谷歌浏览器测试发现可以完成同时有了relay信息的返回。
在这里插入图片描述

二、使用Docker部署Coturn

2.1 安装Docker

sudo apt-get update
sudo apt-get install docker.io

检查docker是否安装成功
docker -v
在这里插入图片描述

2.2 安装Coturn镜像

首先设置docker的国内镜像源,否则通过docker官网地址拉取Coturn镜像会报错超时。

sudo vim /etc/docker/daemon.json 初次安装docker没有daemon.json文件,需要创建,然后将下面的内容复制到文件中并保存。
{
“registry-mirrors”: [
“https://docker.registry.cyou”,
“https://docker-cf.registry.cyou”,
“https://dockercf.jsdelivr.fyi”,
“https://docker.jsdelivr.fyi”,
“https://dockertest.jsdelivr.fyi”,
“https://mirror.aliyuncs.com”,
“https://dockerproxy.com”,
“https://mirror.baidubce.com”,
“https://docker.m.daocloud.io”,
“https://docker.nju.edu.cn”,
“https://docker.mirrors.sjtug.sjtu.edu.cn”,
“https://docker.mirrors.ustc.edu.cn”,
“https://mirror.iscas.ac.cn”,
“https://docker.rainbond.cc”]
}

接着通过sudo service docker restart重启docker
然后通过sudo docker info查看镜像是否设置成功
在这里插入图片描述
国内镜像设置成功后,就可以拉取Coturn的镜像了,Coturn更新频率比较稳定,喜欢最新功能的可以拉取latest最新版本,我目前使用的是Coturn 4.6.2-r12,所以拉取命令如下:
sudo docker pull coturn/coturn:4.6.2-r12
拉取成功后,通过sudo docker images查看现有镜像信息。
在这里插入图片描述

2.3 配置Docker中的Coturn

参考第一章内容创建一个turnserver.conf文件,将coturn需要的配置信息写好,我没有创建dockerfile,所以直接通过命令创建容器运行Coturn即可,命令如下:
sudo docker run -d --name coturn --network=host -v /home/ubuntu/coturn-config/turnserver.conf:/etc/coturn/turnserver.conf coturn/coturn:4.6.2-r12 turnserver -r ip:3478
切记命令行中要加上-r设置,否则谷歌浏览器无法正常使用turn服务。
运行后通过sudo docker ps可以查看运行状态。
在这里插入图片描述
通过docker正确运行coturn以后,在网页上就可以测试ICE服务是否连通了。

总结

至此总结了一下部署、使用Coturn过程中遇到的问题以及相关流程,希望对感兴趣的小伙伴有帮助,如果有问题欢迎大佬们批评指正,下一章我们言归正传,测试PeerJS-Server服务的使用以及跨电脑同网络下PeerJS对ICE的配置使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/64977.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

@vue/cli启动异常:ENOENT: no such file or directory, scandir

参考:https://blog.csdn.net/qq_44355188/article/details/122239566 首先异常报错是:ENOENT: no such file or directory, scandir ‘D:\Data\Project\VueProject\hello\node_modulesvue\cli-plugin-eslint\locales’;我的vue/cli版本是 4.5.15 重点是…

Git进阶:本地或远程仓库如何回滚到之前的某个commit

在Git的使用过程中,我们经常会遇到需要回滚到之前某个commit的情况。无论是为了修复错误、撤销更改,还是为了重新组织代码,回滚到特定commit都是一个非常有用的技能。本文将介绍几种常用的回滚方法,帮助读者更好地掌握Git版本控制…

【java设计模式】1 - 软件设计原则

1,软件设计原则 在软件开发中,为了提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性,程序员要尽量根据6条原则来开发程序,从而提高软件开发效率、节约软件开发成本和维护成本。 1.1 开闭原则 对扩展开…

如何安全获取股票实时数据API并在服务器运行?

以下是安全获取股票实时数据 API 并在服务器运行的方法: 选择合适的券商或交易平台 评估自身需求:明确自己的交易策略、交易品种、交易频率等需求,以及对 股票api 的功能、性能、稳定性等方面的要求。调研券商或平台:了解不同券商…

kali切换root用户显示su: Authentication failure解决方案

1.切换root用户显示su: Authentication failure 2.解决方式:使用sudo su命令 3.密码新版的应该都是kali

一篇文章学会HTML

目录 页面结构 网页基本标签 图像标签 超链接标签 文本链接 图像链接 锚链接 功能链接 列表 有序列表 无序列表 自定义列表 表格 跨列/跨行 表头 媒体元素 视频 音频 网站的嵌套 表单 表单元素 文本框 单选框 多选框 按钮 下拉框 文本域和文件域 表…

【开源】一款基于SpringBoot的智慧小区物业管理系统

一、下载项目文件 项目文件源码链接:https://pan.quark.cn/s/3998d958e182如出现网盘空间不够存的情况!!!解决办法是先用夸克手机app注册,然后保存上方链接,就可以得到1TB空间了!!&…

北理工计算机考研难度分析

总体情况概述 北京理工大学计算机学院2024届考研呈现出学硕扩招、专硕稳定的特点。学硕实际录取27人(含非全统考),复试线360分,复试录取率76%;计算机技术专硕(不含珠海)实际录取29人,复试线324分,复试录取率86%。两个…

细说STM32F407单片机轮询方式读写SPI FLASH W25Q16BV

目录 一、工程配置 1、时钟、DEBUG 2、GPIO 3、SPI2 4、USART6 5、NVIC 二、软件设计 1、FALSH (1)w25flash.h (2) w25flash.c 1)W25Q16基本操作指令 2)计算地址的辅助功能函数 3)器…

Redis+注解实现限流机制(IP、自定义等)

简介 在项目的使用过程中,限流的场景是很多的,尤其是要提供接口给外部使用的时候,但是自己去封装的话,相对比较耗时。 本方式可以使用默认(方法),ip、自定义参数进行限流,根据时间…

仿闲鱼的二手交易小程序软件开发闲置物品回收平台系统源码

市场前景 闲置物品交易软件的市场前景广阔,主要基于以下几个方面的因素: 环保意识提升:随着人们环保意识的增强,越来越多的人开始关注资源的循环利用,闲置物品交易因此受到了广泛的关注。消费升级与时尚节奏加快&…

FastJson读取resources下的json文件并且转成对象

读取resources下的json文件并且转成对象 json文件路径是: ​​ ‍ 读取代码 ‍ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; import lombok.extern.slf4j.Slf4j; import org.apache.commons.…

深圳龙岗戴尔dell r730xd服务器故障维修

深圳龙岗一台DELL POWEREDGE R730XD服务器系统故障问题处理: 1:客户工厂年底产线整改,时不时的会意外断电,导致服务器也频繁停机, 2:多次异常停机后导致服务器开机后windows server系统无法正常启动了&…

绕组识别标签规范

有标签名称的要标记,没有的不用标记 需要标注的工具、器材 图像中文名称标签名称od脱模剂watering can2铁铲shovel1记号笔,白色着重标bluepen/whitepen6纸质标签label3钢尺scale5玻璃纤维带(卷)红色网格布red grid4白色网格布wh…

中国信通院致信感谢易保全:肯定贡献能力,期许未来合作

近日,中国信息通信研究院(以下简称“中国信通院”)向易保全发感谢信表达谢意,对其在中国信通院牵头的“铸基计划”——企业数字化转型高质量发展推进行动实施中展现出的重要贡献给予了高度评价和肯定,并展望了双方至20…

WebRTC服务质量(08)- 重传机制(05) RTX机制

一、前言: RTX协议(Retransmission,即重传协议)是 WebRTC 中用于处理丢包恢复的一部分。由于网络通信中的丢包不可避免,WebRTC RTP协议栈支持多种丢包恢复机制,其中之一便是通过RTX协议实现的重传机制。 …

国自然联合项目|影像组学智能分析理论与关键技术|基金申请·24-12-25

小罗碎碎念 该项目为国自然联合基金项目,执行年限为2019年1月至2022年12月,直接费用为204万元。 项目研究内容包括影像组学分析、智能计算、医疗风险评估等,旨在通过模拟医生诊断过程,推动人工智能在医疗领域的创新。 项目取得了…

轮播图带详情插件、uniApp插件

超级好用的轮播图 介绍访问地址参数介绍使用方法(简单使用,参数结构点击链接查看详情)图片展示 介绍 带有底部物品介绍以及价格的轮播图组件,持续维护,uniApp插件,直接下载填充数据就可以在项目里面使用 …

Java 本地缓存实现:Guava Cache、Caffeine、Ehcache 和 Spring Cache

文章目录 一、引言二、Guava Cache理论介绍实战演示 三、Caffeine理论介绍实战演示 四、Ehcache理论介绍实战演示 五、Spring Cache理论介绍实战演示 六、总结 一、引言 在现代应用程序开发中,缓存是提高性能和响应速度的关键技术之一。Java 提供了多种本地缓存解决…

计算机网络B重修班-期末复习

[TOC] (计算机网络B重修班-期末复习) 一、单选 (20题,1分/题,共20分) 二、判断 (10题,1分/题,共10分) 三、填空 (10题,1分/题,共10…