WebRTC搭建与应用(五)-Coturn踩坑记
WebRTC搭建与应用(五)-Coturn踩坑记近期由于项目需要在研究前端WebGL渲染转为云渲染,借此机会对WebRTC等有了初步相识,在此记载一下,以防遗忘。
第五章 WebRTC搭建与应用(五)-Coturn踩坑记
前言
原来应该继续写PeerJS-Server使用的相关内容,但是在跨电脑测试WebRTC的过程中发现ICE服务不停有些问题,所以在此记载一下踩坑过程,盼望对大家有所资助。
# 一、Coturn使用
1.1 问题
之前按照https://blog.csdn.net/meteor1028/article/details/144290591讲解内容在Ubuntu搭建了Coturn包管理器服务情势,测试TURN服务是否连通是发现在火狐欣赏器可以精确连接。
https://i-blog.csdnimg.cn/direct/4b103ab67ce14cf29be46bd352c5d84a.png
但是在谷歌欣赏器却会出现卡死无法完成并返回relay信息的问题
https://i-blog.csdnimg.cn/direct/6b3c00a6b11844128872a3d51e177353.png
1.2 问题排查与解决
开始在网上查找问题原因时,发现有些博主说通过Chrome欣赏器自身有问题,无法通过Turn服务功能测试,我在服务器输出Coturn服务日志时谷歌欣赏器连接有如下报错内容,我发现user中并没有出现我设置的用户名,所以会有401未授权的报错。
https://i-blog.csdnimg.cn/direct/0ea6b8181e4d44a98b7711e283ded55a.png
但是同样的服务通偏激狐欣赏器测试时,user中就是有用户名的,开始我也怀疑是谷歌欣赏器自身的原因,但是由于轻量化渲染我们主要使用谷歌欣赏器,所以还是想尝试查找一下问题原因,我就开始研究Coturn服务的相关参数。
经过排查发现在启动Coturn服务时,假如不调用-r命令参数即realm设置,谷歌欣赏器就无法精确穿透返回。
所以启动Coturn服务时一定切记要加上-r设置才可以。
turnserver -r ip:3478 -c /usr/local/coturn/etc/turnserver.conf
加上-r设置后重启服务在谷歌欣赏器测试发现可以完成同时有了relay信息的返回。
https://i-blog.csdnimg.cn/direct/78b8ab73f14b40a398d540aae39f025e.png
二、使用Docker摆设Coturn
2.1 安装Docker
sudo apt-get update
sudo apt-get install docker.io
查抄docker是否安装成功
docker -v
https://i-blog.csdnimg.cn/direct/ecce053ea9e9458e80d94b4d2e3b41a4.png
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查看镜像是否设置成功
https://i-blog.csdnimg.cn/direct/10e9bc24f5554b4b95a01aa844ee38d0.png
国内镜像设置成功后,就可以拉取Coturn的镜像了,Coturn更新频率比力稳固,喜欢最新功能的可以拉取latest最新版本,我目前使用的是Coturn 4.6.2-r12,所以拉取命令如下:
sudo docker pull coturn/coturn:4.6.2-r12
拉取成功后,通过sudo docker images查看现有镜像信息。
https://i-blog.csdnimg.cn/direct/1e4454c625b24c9bbb4f2a6b197279e4.png
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可以查看运行状态。
https://i-blog.csdnimg.cn/direct/7a3246a4f1b946ed8843a67df6944136.png
通过docker精确运行coturn以后,在网页上就可以测试ICE服务是否连通了。
总结
至此总结了一下摆设、使用Coturn过程中遇到的问题以及相关流程,盼望对感兴趣的小同伴有资助,假如有问题欢迎大佬们批评指正,下一章我们言归正传,测试PeerJS-Server服务的使用以及跨电脑同网络下PeerJS对ICE的设置使用。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]