WebRTC 环境搭建

主题

本文主要描述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

相关推荐
数据知道7 小时前
指纹浏览器:DNS 泄漏防范与 WebRTC 本地 IP 屏蔽的底层实现
爬虫·网络协议·tcp/ip·安全·webrtc·数据采集·指纹浏览器
换个昵称都难1 天前
webrtc源码解析概要介绍
webrtc
换个昵称都难1 天前
WebRTC 完整调用流程(前端纯 JS 实现,最简可运行)
webrtc
换个昵称都难2 天前
webrtc 拥塞控制GCC 和PCC
webrtc
Cxiaomu2 天前
React接入WebRTC实时视频实践
react.js·音视频·webrtc
AndyHuang19762 天前
WebRTC 强制 Relay 模式下 TCP 重连失败深度排查与优化实战
webrtc
换个昵称都难2 天前
webrtc pacing 平滑发包模块
webrtc
换个昵称都难2 天前
webrtc 音频混音介绍
音视频·webrtc
换个昵称都难3 天前
webrtc QOS-RemoteBitrateEstimator接收端带宽估计(1)
webrtc
换个昵称都难3 天前
webrtc QOS-RemoteBitrateEstimator接收端带宽估计-四个实例(2)
webrtc