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

相关推荐
chen_song_3 天前
WebRTC的ICE之TURN协议的交互流程中继转发Relay媒体数据的turnserver的测试
算法·音视频·webrtc·交互·媒体
程序员阿灿3 天前
ZLMediaKit 源码分析——[3] ZLToolKit 中EventPoller之网络事件处理
网络·webrtc·zlmediakit·zltoolkit
EasyCVR4 天前
视频AI赋能水利行业生态治理,水电站大坝漂浮物实时监测与智能预警方案
webrtc·智能硬件
拖孩6 天前
[特殊字符]我在 Chatterbox(话匣子)中 WebRTC 的使用-上篇(基本介绍)
开发语言·php·webrtc
多看书少吃饭6 天前
WebRTC简介及应用
前端·vue.js·websocket·webrtc
chen_song_8 天前
WebRTC中音视频服务质量QoS之FEC+NACK调用流程
udp·音视频·webrtc·rtc·h264·nack·fec
_洛_神11 天前
Webrtc编译官方示例实现视频通话
音视频·webrtc
EasyCVR11 天前
跨平台IPC通信、嵌入式WebRTC轻量化引擎:解析EasyRTC在ARM/Linux平台的性能突破
linux·arm开发·webrtc
GDAL11 天前
WebRTC协议全面教程:原理、应用与优化指南
webrtc
m0_7482400212 天前
WebRTC实现双端音视频聊天(Vue3 + SpringBoot)
spring boot·音视频·webrtc