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.rhkb.cn/news/495237.html

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

相关文章

亚信安全举办“判大势 悟思想 强实践”主题党日活动

为深入学习和贯彻党的二十届三中全会精神,近日,亚信安全举办了 “学习贯彻党的二十届三中全会精神——‘判大势 悟思想 强实践’党日活动”,并取得圆满成功。 本次活动特邀南京市委宣讲团成员、南京市委党校市情研究中心主任王辉龙教授出席。…

EsChatPro 接入国内 DeepSeek 大模型

EsChatPro 接入国内 DeepSeek 大模型 前言 上一篇文章 我们讲了 EsChatPro 如何在本地安装运行,接下来给大家带来接入 deepseek 大模型的教程,实现 AI对话 功能 详见:EsChatPro本地开发运行指南 前置准备 首先我们打开 deepseek 的官网&…

Linux挖矿程序排查

一、背景 我们收到一个阿里云安全告警,内容是服务器可能存在挖矿程序。 二、杀死挖矿程序 2.1 找到可疑服务器进程 #1.输入top命令,输入shift P会按照cpu的使用率大小从大到小进行排序,cpu使用率高的就是可疑进程。 top #2.查看运行该进程…

flask基础

from flask import Flask, requestapp Flask(__name__)# app.route(/) # def hello_world(): # put applications code here # return Hello World!app.route(/) # 路由 当用户访问特定 URL 时,Flask 会调用对应的视图函数来处理请求 def index():return …

OpenCV学习——图像融合

import cv2 as cv import cv2 as cvbg cv.imread("test_images/background.jpg", cv.IMREAD_COLOR) fg cv.imread("test_images/forground.png", cv.IMREAD_COLOR)# 打印图片尺寸 print(bg.shape) print(fg.shape)resize_size (1200, 800)bg cv.resize…

Spring Boot 项目创建

创建一个新项目: 打开 Spring Initializr 网址:https://start.spring.io/ ,然后创建一个新项目: springboot3.3.5_jdk17: Project(Maven)编程语言(Java 17)Spring Boo…

GTID下复制问题和解决

环境介绍 数据库1主2从,mysql版本是v5.19 表结构 一、主库新增记录,从库提示主键冲突 模拟故障 1, master上关闭 sql_log_bin,删除id 103 后打开 2, 确认此时从库有id103,主库没有 3, master insert id103 主从异常…

C语言初阶【13】——打印一个数的每一位(递归和非递归实现)

1. 题目 打印一个数的每一位 2.分析 首先先实现非递归方式, 以123为例。我们要获取它的每一位, 获取个位数:123 %10 3 获取十位数:123/10 12 之后在 12%10 2; 获取百位数:12/10 1 之后再1%10 1&#x…

webrtc学习----前端推流拉流,局域网socket版,一对多

提示:局域网socket版,一对多 文章目录 [TOC](文章目录) 前言一、教程二、webrtc工作流程三、推流端四、拉流五、socket服务六、效果七、备注总结 前言 WebRTC(Web Real-Time Communication)是一种实时通讯技术,允许网…

深入探讨 Go 中的高级表单验证与翻译:Gin 与 Validator 的实践之道20241223

深入探讨 Go 中的高级表单验证与翻译:Gin 与 Validator 的实践之道 在现代后端开发中,表单验证是保证数据完整性和服务稳定性的核心环节。如何优雅、高效地实现表单验证,同时提供人性化的错误提示,是每位开发者的必修课。在本文中…

单机游戏《野狗子》游戏运行时提示dbghelp.dll缺失是什么原因?dbghelp.dll缺失要怎么解决?

《野狗子》游戏运行时提示dbghelp.dll缺失:原因与解决方案 在畅游《野狗子》这款引人入胜的游戏世界时,突然遭遇“dbghelp.dll缺失”的错误提示,无疑会给玩家的探险之旅蒙上一层阴影。作为一名深耕软件开发领域的从业者,我深知此…

Unity复刻胡闹厨房复盘 模块一 新输入系统订阅链与重绑定

本文仅作学习交流,不做任何商业用途 郑重感谢siki老师的汉化教程与代码猴的免费教程以及搬运烤肉的小伙伴 版本:Unity6 模板:3D 核心 渲染管线:URP ------------------------------…

Flutter 异步编程简述

1、isolate 机制 1.1 基本使用 Dart 是基于单线程模型的语言。但是在开发当中我们经常会进行耗时操作比如网络请求,这种耗时操作会堵塞我们的代码。因此 Dart 也有并发机制 —— isolate。APP 的启动入口main函数就是一个类似 Android 主线程的一个主 isolate。与…

一键打断线(根据相交点打断)——CAD c# 二次开发

多条相交线根据交点一键打断,如下图: 部分代码如下: finally namespace IFoxDemo; public class Class1 {[CommandMethod("ddx")]public static void Demo(){//"ifox可以了".Print();Database db HostApplicationServices.Workin…

Confluent Cloud Kafka 可观测性最佳实践

Confluent Cloud 介绍 Confluent Cloud 是一个完全托管的 Apache Kafka 服务,提供高可用性和可扩展性,旨在简化数据流处理和实时数据集成。用户可以轻松创建和管理 Kafka 集群,而无需担心基础设施的维护和管理。Confluent Cloud 支持多种数据…

【C++】B2066救援题目分析和解决讲解

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯 题目💯 题目分析每个屋顶计算的元素 💯 思路解析1. **读取输入**2. **计算屋顶时间**3. **结果精确取整** 💯 完整解决代码&#x1f4a…

WPS工具栏灰色怎么办

WPS离线不登录,开启工具栏等相关功能 当你在使用WPS的过程中,若因网络问题或其他特殊原因,导致无法登录使用WPS时,可根据以下步骤开启离线兼容模式,开启此模式后,可在未登录的状态下,激活并使用…

反射探针.

一、在unity场景中如何添加反射探针? 可以先添加一个空对象,在空对象的上方添加反射探针组件(Reflection Probe) 反射探针的类型有:Baked、Custom、Realtime 其中“Baked”反射探针类型,可以将场景中的静态…

SecureCRT汉化版

目录 9.5.1版 8.1.4版 下载链接 SecureCRT 和 SecureFX 是由 VanDyke Software 开发的专业工具,分别专注于安全的终端仿真与文件传输。SecureCRT 提供高效的终端仿真和多协议支持,是网络管理和系统配置的首选工具;SecureFX 则致力于安全的…

回归预测 | MATLAB实现CNN-LSSVM卷积神经网络结合最小二乘支持向量机多输入单输出回归预测

回归预测 | MATLAB实现CNN-LSSVM卷积神经网络结合最小二乘支持向量机多输入单输出回归预测 目录 回归预测 | MATLAB实现CNN-LSSVM卷积神经网络结合最小二乘支持向量机多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 回归预测 | MATLAB实现CNN-LSSVM…