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

相关推荐
赖small强1 小时前
【ZeroRange WebRTC】RTP/RTCP/RTSP协议深度分析
webrtc·rtp·rtsp·rtcp
赖small强2 小时前
【ZeroRange WebRTC】视频文件RTP打包与发送技术深度分析
webrtc·nal单元分割·rtp负载封装·分片策略
赖small强2 小时前
【ZeroRange WebRTC】KVS WebRTC 示例中的 HTTP 通信安全说明
https·webrtc·tls·aws sigv4·信道安全·时间与重放控制
chen_song_2 小时前
低时延迟流媒体之WebRTC协议
webrtc·rtc·流媒体
恪愚3 小时前
webRTC:流程和socket搭建信令服务器
运维·服务器·webrtc
赖small强17 小时前
【ZeroRange WebRTC】Amazon Kinesis Video Streams WebRTC SDK 音视频传输技术分析
音视频·webrtc·nack·pli·twcc·带宽自适应
赖small强18 小时前
【ZeroRange WebRTC】Amazon Kinesis Video Streams WebRTC Data Plane REST API 深度解析
https·webrtc·data plane rest·sigv4 签名
赖small强1 天前
【ZeroRange WebRTC】Kinesis Video Streams WebRTC 三大平面职责与协同关系总结
websocket·webrtc·control plane·data plane
赖small强1 天前
【ZeroRange WebRTC】Amazon Kinesis Video Streams WebRTC Control Plane API 深度解析
https·webrtc·control plane
赖small强1 天前
【ZeroRange WebRTC】Kinesis Video Streams WebRTC Data Plane WebSocket API 深度解析
websocket·webrtc·sdp·offer/answer·master/viewer