WebRTC 环境搭建

news2024/11/26 14:13:52

主题

本文主要描述webrtc开发过程中所需的环境搭建

环境:

运行环境:ubuntu 20.04

Node.js环境搭建

安装编译 Node.js 所需的依赖包:

sudo apt-get update
sudo apt-get install -y build-essential libssl-dev

下载 Node.js 源码:

curl -sL https://nodejs.org/dist/v14.19.0/node-v14.19.0.tar.gz -o node-v14.19.0.tar.gz

 解压源码包:

tar -xzf node-v14.19.0.tar.gz
cd node-v14.19.0

配置、编译和安装 Node.js:

./configure
sudo make && sudo make install

 验证 Node.js 和 npm 的安装

node -v && npm -v

 测试

app.js

// 引入 http 模块
const http = require('http');

// 创建一个 HTTP 服务器
const server = http.createServer((req, res) => {
  // 设置 HTTP 响应头
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');

  // 向客户端发送响应
  res.end('Hello, World!\n');
});

// 指定服务器监听的端口号
const port = 3000;
server.listen(port, () => {
  console.log(`服务器正在监听端口 ${port}`);
});
node app.js

coturn搭建

安装 COTURN 软件包:

sudo apt-get install coturn

编辑 COTURN 配置文件:

sudo vim /etc/coturn/turnserver.conf

请根据实际情况修改以下配置项:

  • realm: 设置 TURN 服务器的域名或 realm。

  • user: 设置 TURN 服务器的用户名和密码。

  • static-auth-secret: 设置身份验证的密钥。

  • server-name: 设置 TURN 服务器的域名或 IP 地址。  

listening-port=3478
tls-listening-port=5349
#realm=example.com
user=jbj:123456
min-port=49152
max-port=65535
log-file=/var/log/coturn/turnserver.log
verbose
fingerprint
lt-cred-mech
use-auth-secret
static-auth-secret=ABCD1234EFGH5678
server-name=192.168.1.25

 启动 COTURN 服务:

sudo systemctl start coturn

检查 COTURN 服务状态:

sudo systemctl status coturn

之后,可以使用 COTURN 服务器提供的 STUN 和 TURN 功能,帮助 WebRTC 等实时通信应用程序解决 NAT 穿透问题。

# nohup是重定向命令,输出都将附加到当前目录的 nohup.out 文件中;
# 命令后加 & ,后台执行起来后按 
ctr+c,不会停止
sudo nohup turnserver ‐L 0.0.0.0 ‐a ‐u jbj:123456 ‐v ‐f ‐r nort.gov &
 # 前台启动
sudo turnserver ‐L 0.0.0.0 ‐a ‐u jbj:123456 ‐v ‐f ‐r nort.gov  
#然后查看相应的端口号3478是否存在进程
sudo lsof ‐i:3478

sar网络上传下载检测

sudo apt-get install sysstat
#每1s检测一次
sudo sar -n DEV 1

  • 09:03:19 PM: 这表示输出统计信息的时间是下午 9 点 3 分 19 秒。

网络接口信息:

  • lo: 这是本地回环接口,用于本机之间的通信。

  • ens33: 这是主网卡接口。

  • docker0: 这是 Docker 容器网桥接口。

  • docker_gwbridge: 这是 Docker 网关桥接口。

网络流量统计指标:

  • rxpck/s: 每秒接收的数据包数量。

  • txpck/s: 每秒发送的数据包数量

  • rxkB/s: 每秒接收的数据量,单位为 KB。

  • txkB/s: 每秒发送的数据量,单位为 KB。

  • rxcmp/s: 每秒接收的压缩数据包数量。

  • txcmp/s: 每秒发送的压缩数据包数量。

  • rxmcst/s: 每秒接收的多播数据包数量。

  • %ifutil: 网卡利用率百分比。

nginx环境搭建

安装 Nginx 编译依赖

sudo apt-get update
sudo apt-get install build-essential libtool zlib1g-dev libpcre3 libpcre3-dev openssl

下载 Nginx 源码

wget http://nginx.org/download/nginx-1.15.8.tar.gz
tar xvzf nginx-1.15.8.tar.gz
cd nginx-1.15.8/

 配置 Nginx 编译参数 (支持 HTTPS)

./configure --with-http_ssl_module

 编译安装

# 编译 Nginx
make

# 安装 Nginx
sudo make install

查看 Nginx 的编译参数
nginx -V

--with-http_ssl_module 表示 Nginx 已经编译了对 SSL/TLS 协议的支持。

学习资料分享

0voice · GitHub

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

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

相关文章

libgdiplus在MacOS M1上问题:Unable to load shared library ‘libgdiplus‘

libgdiplus在MacOS M1上问题:Unable to load shared library libgdiplus 问题解决步骤1步骤2 问题 在mac上的pycharm中执行下面的代码时出现下面的错误 slide.get_thumbnail( RuntimeError: Proxy error(TypeInitializationException): The type initializer for…

【VScode】VScode内的ChatGPT插件——CodeMoss全解析与实用教程

在当今快速发展的编程世界中,开发者们面临着越来越多的挑战。如何提高编程效率,如何快速获取解决方案,成为了每位开发者心中的疑问。今天,我们将深入探讨一款颠覆传统编程体验的插件——CodeMoss,它将ChatGPT的强大功能…

关于我、重生到500年前凭借C语言改变世界科技vlog.16——万字详解指针概念及技巧

文章目录 1. sizeof 和 strlen1.1 sizeof1.2 strlen 2. 数组和指针结合的试题深入解析2.1 一维数组2.2 字符数组代码1代码2代码3代码4代码5代码6 2.3 二维数组 3.指针运算的试题深入解析题1题2题3题4题5题6题7 希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的动力…

flutter 专题四 Flutter渲染流程

一、 Widget - Element - RenderObject关系 二、 Widget 、Element 、RenderObject 分别表示什么 2.1 Widget Widget描述和配置子树的样子 Widget就是一个个描述文件,这些描述文件在我们进行状态改变时会不断的build。但是对于渲染对象来说,只会使用最…

Netty 编码器 解码器 正确使用姿势

Netty 编码器 & 解码器 正确使用姿势 通过前面文章的例子,相信读者也感受到了Netty 开发核心工作在于处理读事件(解码)、写事件(编码)。 Netty 的编解码器是处理网络数据编码和解码的核心组件,编解码…

基于微信小程序的电子购物系统的设计与实现(lw+演示+源码+运行)

摘 要 由于APP软件在开发以及运营上面所需成本较高,而用户手机需要安装各种APP软件,因此占用用户过多的手机存储空间,导致用户手机运行缓慢,体验度比较差,进而导致用户会卸载非必要的APP,倒逼管理者必须改…

FIPS203 后量子安全ML-KEM(标准简读)

FIPS 203是美国国家标准与技术研究院(NIST)发布的关于模块格基密钥封装机制(ML-KEM)的标准,旨在提供一种能抵御量子计算机攻击的密钥建立方案。以下是对该文档的详细总结: 标准概述 目的与范围&#xff…

鸿萌数据迁移服务: 企业服务器整机在线热迁移, 实现不停机业务转移

天津鸿萌科贸发展有限公司从事数据安全服务二十余年,致力于为各领域客户提供专业的数据存储、数据恢复、数据备份、数据迁移等解决方案与服务,并针对企业面临的数据安全风险,提供专业的相关数据安全培训。 鸿萌数据迁移业务为众多企业顺利高效…

macOS15.1及以上系统bug:开发者证书无法打开,钥匙串访问无法打开一直出现图标后立马闪退

团队紧跟苹果最新系统发现bug:今日设备信息如下,希望能带给遇到这个问题的开发者一点帮助。 错误图如下: 点击证书文件后,先出现钥匙串访问图标,后立马闪退消失 中间试过很多方法,都是一样的表现,最后好在解决了,看网上也没有相关的帖子,这里直接写解决办法和导致原因…

20241102在荣品PRO-RK3566开发板的预置Android13下适配宸芯的数传模块CX6603N

20241102在荣品PRO-RK3566开发板的预置Android13下适配宸芯的数传模块CX6603N 2024/11/2 18:04 在WIN10使用程序:ViewLink-4.0.7_0708-windows-x64.exe 在荣品PRO-RK3566开发板的预置Android13下使用:ViewLink-2023_12_21-release-0.2.6.apk adb install…

【STM32】DMA直接存储器读取

文章目录 DMA简介DMA定义DMA传输方式DMA传输参数STM32的存储器映像DMA基本结构DMA的具体应用数据转运 DMAADC扫描模式 DMA DMA库函数 DMA数据传输(数据转运 DMA)接线图MyDMA模块main.c 源程序 DMA AD多通道(ADC扫描模式 DMA)…

兰空图床配置域名访问

图床已经创建完毕并且可以访问了,但是使用IP地址多少还是差点意思,而且不方便记忆,而NAT模式又没法直接像普通服务器一样DNS解析完就可以访问。 尝试了很多办法,nginx配置了半天也没配好,索性直接重定向,反…

React 入门课程 - 使用CDN编程React

1. 第一个React 注意&#xff1a;在vscode里&#xff0c;使用Live Server来运行html文件。 index.html <html><head><link rel"stylesheet" href"index.css"><script crossorigin src"https://unpkg.com/react17/umd/react.de…

flink 内存配置(一):设置Flink进程内存

flink 内存配置&#xff08;一&#xff09;&#xff1a;设置Flink进程内存 flink 内存配置&#xff08;二&#xff09;&#xff1a;设置TaskManager内存 flink 内存配置&#xff08;三&#xff09;&#xff1a;设置JobManager内存 flink 内存配置&#xff08;四&#xff09;…

快讯,Flutter PC 多窗口新进展,已在 Ubuntu/Canonical 展示

相信 Flutter 开发者对于 Flutter PC 多窗口的支持一直是「望眼欲穿」&#xff0c;而根据 #142845 相关内容展示&#xff0c; 在上月 27 号的 Ubuntu 峰会&#xff0c;Flutter 展示了多窗口相关进展。 事实上 Ubuntu 和 Flutter 的进一步合作关系应该是在 2021 年就开始了&…

HTB:Nibbles[WriteUP]

目录 连接至HTB服务器并启动靶机 1.How many open TCP ports are listening on Nibbles? 使用nmap对靶机TCP端口进行开放扫描 2.What is the relative path on the webserver to a blog? 使用ffuf对靶机80端口Web进行路径FUZZ 3.What content management system (CMS) …

AI资讯快报(2024.11.3-11.8)

1.<字节跳动上线名为炉米 Lumi的 AI 模型交流社区> 近日&#xff0c;字节跳动上线了一款名为【炉米 Lumi】的 AI 模型交流社区&#xff0c;这是一个专门给AI爱好者、研究人员和开发者准备的AI模型分享社区平台。该平台目前还在内部测试阶段&#xff0c;只有白名单用户才…

使用最新版的wvp和ZLMediaKit搭建Gb28181测试服务器

文章目录 说明安装1.安装nodejs简介安装步骤 2.安装java环境3.安装mysql安装修改密码 4.安装redis5.安装编译器6.安装cmake7.安装依赖库8.编译ZLMediaKit9.编译wvp-GB28181-pro 配置1.ZLMediaKit配置2.wvp-GB28181-pro配置2.1.配置ZLMediaKit连接信息2.2.28181服务器的配置2.3.…

AutoOps 使每个 Elasticsearch 部署都更易于管理

作者&#xff1a;来自 Elastic Ziv Segal&#xff0c;Ori Shafir AutoOps for Elasticsearch 通过性能建议、资源利用率和成本洞察、实时问题检测和解决路径显著简化了集群管理。 虽然 Elasticsearch 是一款功能强大且可扩展的搜索引擎&#xff0c;可提供多种功能&#xff0c;但…

Excel:vba实现正则匹配

一、匹配数字 实现的效果&#xff1a;(点击右边“提取数字”按钮) 实现的代码&#xff1a; Sub 提取数字() Dim cell As Range Dim sj As Object Dim regx As Object Dim ss As Object Dim n As Integer创建了一个 VBScript 正则表达式对象 regx&#xff0c;用于匹配特定模式…