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

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

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

相关文章

Python从入门到高手7.5节-实现冒泡排序算法

目录 7.5.1 排序算法简介 7.5.2 冒泡排序算法原理 7.5.3 冒泡排序算法实现 7.5.4 永不放弃 7.5.1 排序算法简介 所谓排序,是指将数据集合中的元素按从小到大的顺序进行排列,或按从大到小的顺序进行排列。 前者称为升序排序,后者称为降序…

vue-quill-editor富文本编辑器

效果图&#xff1a; 1、下载安装vue-quill-editor npm install vue-quill-editor --save图片缩放、拖拽 npm install quill-image-drop-module -S //允许粘贴图像并将其拖放到编辑器中。 npm install quill-image-resize-module -S //允许调整图像大小<template>&…

TCP是怎样工作的网络拥塞控制理论和算法部分记录

参考资料 https://github.com/ituring/tcp-book 流量控制、窗口控制和拥塞控制的关系 流量控制、窗口控制和拥塞控制的关系如图所示 窗口控制是上层的概念&#xff0c;核心思路是基于滑动窗口技术传输数据。而确定发送窗口大小的方法有流量控制和拥塞控制两种 流量控制&…

NVR管理平台EasyNVR多个NVR同时管理对接天翼云云存储的一些关键信息和优势

在视频监控领域&#xff0c;随着技术的不断进步&#xff0c;存储方式的选择变得尤为重要。传统的本地存储方式受限于硬件容量&#xff0c;而云存储则以其强大的数据处理能力和弹性扩展性&#xff0c;成为视频数据存储的理想选择。NVR管理平台EasyNVR作为一款领先的视频汇聚与管…

饲料加工机器设备由搅拌机粉碎机颗粒机组成

饲料加工机器设备在现代养殖业中扮演着至关重要的角色&#xff0c;它们不仅提高了饲料的生产效率&#xff0c;还优化了饲料的营养价值。其中&#xff0c;饲料粉碎机、搅拌机和颗粒机是饲料加工流程中的三大核心设备。 想象一下&#xff0c;一把把粗糙的原料&#xff0c;在粉碎…

oracle数据坏块处理(二)-逻辑坏块重新格式化处理

1、问题描述 在使用duplicate搭建DG时报错 包括rman copy&#xff0c;rman备份 2、问题分析 由于数据文件逻辑坏块导致物理备份不能正常进行。 使用rman检查数据文件47 SELECT tablespace_name, segment_type, owner, segment_name FROM dba_extents WHERE file_id 47 a…

在IDEA使用arthas实现jar包方法耗时统计

1.背景 对于依赖jar包中的方法内部耗时统计&#xff0c;传统的手写StopWatch不适用&#xff0c;这儿采用arthas统计。 官网文档比较详细&#xff0c;trace | arthas 使用版本&#xff1a; arthas-boot version: 4.0.2 IntelliJ IDEA 2023.3.3 2.使用介绍 2.1.启动需要检…

用于图像识别的判别图正则化技术

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;编程探索专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年11月8日13点32分 点击开启你的论文编程之旅https://www.aspiringcode.com/content?id17210272021224&uid64a84f9640714755a…

Android Handler

Handler用于多线程消息分发和处理。与handler相关的几个对象&#xff1a;Message, Looper&#xff0c;MessageQueue, ThreadLocal. Handler是Message的消费者。 MessageQueue是容器。 Looper是整个Message分发的驱动。 Handler中有多种发送消息的方法&#xff0c;其中postxx…

Windows/Linux部署Qt并通过Qt Installer Framework制作安装包

本文参考 Qt Installer Framework Manual。 若要使用 Qt Installer Framework&#xff08;简称 QIF&#xff09;&#xff0c;需要在 Qt Online Installer 或 Qt Maintenance Tool 中确保该组件已安装&#xff08;QIF 组件在 Qt->Developer and Design Tools 下&#xff09;&…

【大数据学习 | kafka】消费者的分区分配规则

1. 概述 上面我们提到过&#xff0c;消费者有的时候会少于或者多于分区的个数&#xff0c;那么如果消费者少了有的消费者要消费多个分区的数据&#xff0c;如果消费者多了&#xff0c;有的消费者就可能没有分区的数据消费。 那么这个关系是如何分配的呢&#xff1f; 现在我们…

【开发】关于Java中String与Integer的小小知识点(使用等号对比引用对象)

一个很简单的小知识点 我们都知道&#xff0c;如果使用对比包装类型或对象&#xff0c;那么比较的都是两者之间的地址&#xff08;指针或句柄&#xff09;&#xff0c;而非对象本身&#xff0c;那么且看下方的代码。 public class A {public static void main(String[] args)…

2025年山东省考报名流程图解

2025年山东公务员考试备考开始 为大家整理了从笔试到录用的全部流程&#xff0c;希望可以帮助到你们&#xff01;参考2024年山东省考公告整理&#xff0c;请以最新公告为准&#xff01; 一、阅读公告和职位表 二、职位查询 三、网上报名 四、确认缴费 五、网上打印准考证 六、参…

网络安全入门篇之详细学习路线

什么是网络安全 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域&#xff0c;都有攻与防两面性&…

什么是大数据治理?在企业数字化转型过程中有什么用?

建设背景 有效的数据治理不仅能够确保数据的安全和质量&#xff0c;还能为企业提供深入的业务洞察&#xff0c;推动决策制定和创新。数据治理是数字化转型的基础&#xff0c;是数据资源成为数据资产的基础&#xff0c;只有经过了数据治理&#xff0c;相应的数据资源才能产生价…

Kalshi PK Polymarket,谁更胜一筹

https://kalshi.com https://polymarket.com/ 在刚过去的2024 美大选中&#xff0c;这两个网站可谓风光无限。这两者究竟有何区别呢&#xff0c;今天咱们一起来扒一扒。 Kalshi与Polymarket主要有以下区别&#xff1a; 监管与合法性方面&#xff1a; Kalshi&#xff1a;经过美…

UI测试还在Selenium,难怪你会被淘汰

一、前言 在UI自动化测试的领域中&#xff0c;Selenium无疑是一颗璀璨的明星&#xff0c;它以其强大的浏览器自动化能力&#xff0c;长期以来一直是众多测试工程师的首选工具。它很经典&#xff0c;地位也毋庸置疑&#xff0c;但也是过去式了&#xff0c;现在我采用的自动化方…

基于ssm的网上药房管理系统的设计与实现(源码+LW+调试)

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。今天给大家介绍一篇基于java的ssm网上药房管…

godot——主题、Theme、StyleBox

我刚开始被这些术语吓到了&#xff0c;一直不敢去接触它们&#xff0c;都用的默认样式。现在好不容易有点思路了&#xff0c;记录下来。 下面看看怎么自定义样式。 1.先新建一个Theme 2.再次点击创建好的Theme 得到 图1 这样一个面板。&#xff08;看不懂没事&#xff0c;继…

如何利用Python API接口实战中高效地获取商品详情信息

在电商数据分析和商品信息集成领域&#xff0c;高效地获取商品详情信息是至关重要的。本文将介绍如何使用Python结合API接口&#xff0c;从淘宝/天猫平台获取商品详情信息&#xff0c;并提供实战代码示例。 一、理解API接口的重要性 API&#xff08;应用程序编程接口&#xff…