Window下coturn服务器的搭建

Window下搭建coturn服务器:

准备材料:

1、安装Cygwin,地址:https://cygwin.com/install.html

由于Window无法直接部署coturn,因此需要下载安装Cygwin在Window上部署Linux虚拟环境。

在安装的时候需要安装几下packet:openssl-dev、gcc、libevent-devel、make(bin和source都要选择)。尤其是openssl和libevent这两个配置的时候需要使用必须添加正确才能正常生成Makefile。

2、下载coturn源码,地址:https://codeload.github.com/coturn/coturn/zip/4.5.0.4

安装步骤:
  1. 安装Cygwin的步骤网上有很多,除了需要选择几个packet之外,其他的没有需要特别注意的点,所以这里不在追叙。可以参考链接:Cygwin安装教程-CSDN博客
  2. 编译coturn源码
  • 2.1 Cygwin安装完整之后,打开Cygwin窗口,进入到coturn代码所在路径

  • 2.2 到coturn代码路径之后执行以下命令

./configure  //使用此命令更具configure生成makefile

此过程可能会遇到一下问题:

问题1:ERROR: OpenSSL Crypto development libraries are not installed properly in required location.

出现此问题是由于Cygwin中没有安装openssl,如果在编译之前添加了openssl应该不会出现此问题,如果添加了还出现此问题,建议再添加openssllib。

问题2:Libevent2 development libraries are not installed properly in required location.

出现此问题是由于在Cygwin中没有安装libevent,添加之后应该就会出现此问题。

  • 2.3 编译完成之后,会在coturn文件下生成Makefile文件。之后执行make
make//编译生成可以执行的文件

编辑完成如下图:

在这里插入图片描述

  • 2.4 编译完成之后会在文件夹下生成一下几个文件

在这里插入图片描述

之后使用make install 安装即可

make install

安装完成如下:

install -d sqlite
rm -rf sqlite/turndb
echo sqlite/turndb < turndb/schema.sql
sqlite/turndb
install -d /usr/local
install -d /usr/local/bin
install -d /usr/local/var/db
install -d /usr/local/man/man1
install -d /usr/local/etc
install -d /usr/local/lib
install -d /usr/local/share/examples/turnserver
install -d /usr/local/share/doc/turnserver
install -d /usr/local/share/turnserver
install -d /usr/local/include/turn
install -p bin/turnserver /usr/local/bin
install -p bin/turnadmin /usr/local/bin
install -p bin/turnutils_uclient /usr/local/bin
install -p bin/turnutils_peer /usr/local/bin
install -p bin/turnutils_stunclient /usr/local/bin
install -p bin/turnutils_oauth /usr/local/bin
install -p bin/turnutils_natdiscovery /usr/local/bin
install -p -m 0644 man/man1/turnserver.1 /usr/local/man/man1/
install -p -m 0644 man/man1/turnadmin.1 /usr/local/man/man1/
install -p -m 0644 man/man1/turnutils.1 /usr/local/man/man1/
install -p -m 0644 man/man1/turnutils_uclient.1 /usr/local/man/man1/
install -p -m 0644 man/man1/turnutils_stunclient.1 /usr/local/man/man1/
install -p -m 0644 man/man1/turnutils_oauth.1 /usr/local/man/man1/
install -p -m 0644 man/man1/turnutils_natdiscovery.1 /usr/local/man/man1/
install -p -m 0644 man/man1/turnutils_peer.1 /usr/local/man/man1/
install -p -m 0644 man/man1/coturn.1 /usr/local/man/man1/
install -p lib/libturnclient.a /usr/local/lib
install -p LICENSE /usr/local/share/doc/turnserver
install -p README.turnserver /usr/local/share/doc/turnserver
install -p README.turnadmin /usr/local/share/doc/turnserver
install -p README.turnutils /usr/local/share/doc/turnserver
install -p INSTALL /usr/local/share/doc/turnserver
install -p postinstall.txt /usr/local/share/doc/turnserver
install -p turndb/schema.sql /usr/local/share/doc/turnserver
install -p turndb/schema.sql /usr/local/share/turnserver
install -p turndb/schema.mongo.sh /usr/local/share/doc/turnserver
install -p turndb/schema.mongo.sh /usr/local/share/turnserver
install -p turndb/testredisdbsetup.sh /usr/local/share/turnserver
install -p turndb/testmongosetup.sh /usr/local/share/turnserver
install -p turndb/testsqldbsetup.sql /usr/local/share/turnserver
install -p turndb/schema.userdb.redis /usr/local/share/doc/turnserver
install -p turndb/schema.userdb.redis /usr/local/share/turnserver
install -p turndb/schema.stats.redis /usr/local/share/doc/turnserver
install -p turndb/schema.stats.redis /usr/local/share/turnserver
if [ -f sqlite/turndb ] ; then install -p sqlite/turndb /usr/local/var/db/turndb; fi
install -p examples/etc/turnserver.conf /usr/local/etc/turnserver.conf.default
cp -rpf examples/etc /usr/local/share/examples/turnserver
cp -rpf examples/scripts /usr/local/share/examples/turnserver
rm -rf /usr/local/share/examples/turnserver/scripts/rfc5769.sh
cp -rpf include/turn/client /usr/local/include/turn
install -p include/turn/ns_turn_defs.h /usr/local/include/turn
cat /usr/local/share/doc/turnserver/postinstall.txt
See docs folder or go to https://github.com/coturn/coturn/docs/PostInstall.md

至此Window中coturn安装完成。

服务器配置:

1、切换目录到 /usr/local/etc 路径中,将turnserver.conf.default拷贝一份命名为turnserver.conf。

2、在turnserver.conf中添加一下配置

#与前ifconfig查到的网卡名称一致(如果无法运行ifconfig,可以在windows的cmd窗口中使用ipconfig,如果只有一块网卡,可以默认使用如下值)
relay-device=eth0
#内网IP(ipconfig查到的IP地址)
listening-ip=192.168.1.188
#公网IP(局域网可以使用与上面相同的ip地址)
external-ip=113.119.27.xx
#第1步创建的用户名密码,创建IceServer时用
user=your_username:your_password
#一般与turnadmin创建用户时指定的realm一致
realm=xxx.com
#端口号
listening-port=3478
#不开启会报CONFIG ERROR: Empty cli-password, and so telnet cli interface is disabled! Please set a non empty cli-password!错误
cli-password=qwerty
cert=/etc/turn_server_cert.pem
pkey=/etc/turn_server_pkey.pem

至此将自己的信息对应填写之后配置结束。

启动服务:
 turnserver -o -a -f -c /usr/local/coturn/etc/turnserver.conf -r sdo.com 
检测:

打开一下网址,此网址是webRTC提供测试coturn服务器的网址:Trickle ICE (webrtc.github.io)

打开之后填写自己coturn服务器的配置文件信息,如下所示:

在这里插入图片描述

参考链接:

WebRTC之搭建coturn服务遇到的问题_k8s 部署webrtc服务coturn-CSDN博客

coTurn 运行在Windows平台的方法-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

当贝PadGO闺蜜机?多的是你不知道的玩法

一、当贝PadGO性能强在哪? 1、金属机身 当贝PadGO独有CD型底盘更有设计风格、后扶手设计更稳,且采用全金属的材质更有质感。并且在配色上还有熊猫白和唱片黑两种可以选择。屏幕采用AG磨砂类纸屏,自带纸张柔和效果,防眩光。并且拥有德国莱茵低蓝光、无频闪双重护眼认证,还可以…

【C语法学习】3 - fgetc()函数

文章目录 1 函数原型2 参数3 返回值4 比较5 示例5.1 示例15.2 示例2 1 函数原型 fgetc()&#xff1a;从指定流stream中读取一个字符&#xff0c;函数原型如下&#xff1a; int fgetc(FILE *stream)2 参数 fgetc()函数只有一个参数stream&#xff1a; 参数stream是一个指向F…

SpringBoot_第七章(读写分离)

这里列举了三种读写分离实现方案,分别是如下三种 1&#xff1a;MybatisPlus&#xff08;读写分离&#xff09; 1.1&#xff1a;首先创建三个数据库1主2从 表名是user表 1.2&#xff1a;代码实例 1&#xff1a;导入pom <!--MybatisPlus的jar 3.0基于jdk8--><depend…

gRPC源码剖析-Builder模式

一、Builder模式 1、定义 将一个复杂对象的构建与表示分离&#xff0c;使得同样的构建过程可以创建不同的的表示。 2、适用场景 当创建复杂对象的算法应独立于该对象的组成部分以及它们的装配方式时。 当构造过程必须允许被构造的对象有不同的表示时。 说人话&#xff1a…

sql-50练习题11-15

sql-50练习题11-15 前言数据库表结构介绍学生表课程表成绩表教师表 1-1 查询没有学全所有课程的同学的信息1-2 查询至少有一门课与学号为01的同学所学相同的同学的信息1-3 查询和1号的同学学习的课程完全相同的其他同学的信息1-4 查询没学过张三老师讲授的任一门课程的学生姓名…

【自用】vmware workstation建立主机window与虚拟机ubuntu之间的共享文件夹

1.在windows中建立1个文件夹 在vmware中设置为共享文件夹 参考博文&#xff1a; https://zhuanlan.zhihu.com/p/650638983 2.解决&#xff1a; &#xff08;1&#xff09;fuse: mountpoint is not empty &#xff08;2&#xff09;普通用户也能使用共享目录 参考博文&#x…

第06章 索引的数据结构

第06章 索引的数据结构 1. 索引及其优缺点 1.1 索引概述 MySQL官方对索引的定义为&#xff1a;索引&#xff08;Index&#xff09;是帮助MySQL高效获取数据的数据结构。 **索引的本质&#xff1a;**索引是数据结构。你可以简单理解为“排好序的快速查找数据结构”&#xff…

Swagger + DOCWAY 一步导出为优雅完整的Markdown、Pdf接口文档

只要开发&#xff0c;只要写接口应该没人不知道Swagger&#xff0c;但DOCWAY可能知道的人不多&#xff0c;但知道用过后就离不开了&#xff0c;不管是作为多方联调的接口文档&#xff0c;还是交接给客户的文档&#xff0c;都是可以的&#xff0c;具体如何使用&#xff0c;详细步…

都2023年了,不会还有人不会设计软件测试用例叭?不会吧不会吧

一、概念 测试用例的基本概念&#xff1a; 测试用例&#xff08;Test Case&#xff09;是为了实施测试而向被测试的系统提供的一组集合&#xff0c;这组集合包含&#xff1a;测试环境、操作步骤、测试数据、预期结果等要素 。 主要步骤&#xff1a; 测试环境——测试步骤—…

大数据Doris(十四):Doris表中的数据基本概念

文章目录 Doris表中的数据基本概念 一、​​​​​​​Row & Column

第四章 套接字通信

1.套接字socket 1. 概念 局域网和广域网 局域网&#xff1a;局域网将一定区域内的各种计算机、外部设备和数据库连接起来形成计算机通信的私有网络。广域网&#xff1a;又称广域网、外网、公网。是连接不同地区局域网或城域网计算机通信的远程公共网络。 IP&#xff08;Inter…

从零开始制作一个桶装水小程序

随着互联网的发展&#xff0c;越来越多的消费者通过线上购买桶装水。为了满足这一需求&#xff0c;我们需要制作一个专门的小程序商城&#xff0c;以便用户可以方便地购买桶装水。本文将通过乔拓云平台&#xff0c;从零开始制作一个桶装水小程序&#xff0c;并详细解析制作步骤…

Apollo上机实践:一次对自动驾驶技术的亲身体验

上机实践 概述自动驾驶通信分布式系统开发模式开发工具 自动驾驶感知传感器特性感知流程及算法部署感知模型 自动驾驶决策规划决策规划流程和算法使用 Dreamview 进行控制在环的规划调试开发规划场景和算法 福利活动 主页传送门&#xff1a;&#x1f4c0; 传送 概述 Apollo 是…

GAMP源码阅读:卫星位置钟差计算

原始 Markdown文档、Visio流程图、XMind思维导图见&#xff1a;https://github.com/LiZhengXiao99/Navigation-Learning 文章目录 1、satposs_rtklib()2、ephclk()1. eph2clk()&#xff1a;时钟校正参数&#xff08; a f 0 、 a f 1 、 a f 2 a_{f0}、a_{f1}、a_{f2} af0​、af…

【设计模式】第22节:行为型模式之“状态模式”

一、简介 状态模式一般用来实现状态机&#xff0c;而状态机常用在游戏、工作流引擎等系统开发中。不过&#xff0c;状态机的实现方式有多种&#xff0c;除了状态模式&#xff0c;比较常用的还有分支逻辑法和查表法。该模式允许对象内部状态改变使改变它的行为。 二、适用场景…

如何在MacOS使用homebrew安装Nginx

文章目录 Homebrew安装nginxbrew启动Nginxbrew关闭Nginx 参考文章地址 Homebrew安装nginx 在确保MacOS 安装Homebrew成功以后&#xff0c;执行如下命令 brew install nginx注意&#xff1a;Nginx安装成功后会提示目录位置&#xff1b;每个人的系统可能因为Homebrew的安装位置…

Linux0.11内核源码解析-exec.c

主要实现对二进制可执行文件和shell文件的加载和执行&#xff0c;其中主要的函数是do_execve(),它是系统中断调用int 0x80的功能号__NR_execve()调用&#xff0c;是exec()函数的主要实现以下几点功能&#xff1a; 1.执行对参数和环境参数空间页面的初始化操作&#xff0c;初始…

Spring两大核心之一:AOP(面向切面编程)含设计模式讲解,通知类型切点;附有案例,实现spring事务管理

模拟转账业务 pom.xml <dependencies><!--spring--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.29</version></dependency><!--lombok-->…

el-tabs 默认选中第一个

1. 实际开发中el-tabs 都会设置第一个为默认值 ,这样会好看一点, 而渲染的数据经常是通过后端返回的数据 , v-model 无法写死默认值 解决办法 , 通过计算机属性 ,在data 定义一个 selectedTab watch: {defaultTab(newVal) {this.selectedTab newVal; // 设置第一个标签页…

汽车贴膜店展示服务预约小程序的作用是什么

很多家庭都有车辆&#xff0c;除了车身自带颜色或外观&#xff0c;部分消费者会选择贴车衣、改色膜以及其它装饰类服务&#xff1b;而市场高需求下也促进了商家生意增长。 但随着线上化程度加深&#xff0c;传统线下门店也面临多重困境&#xff0c;品牌需要线上发展获得生意及…