WebRTC实现部署到局域网

前面已经实现了一对一视频、一对多视频和一对多+虚拟视频,所以,这节就来试试把前面做好的项目部署到局域网上,边学边用才能让自己干劲十足。

粉丝福利, 免费领取C++音视频学习资料包+学习路线大纲、技术视频/代码,内容包括(音视频开发,面试题,FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,编解码,推拉流,srs)↓↓↓↓↓↓见下面↓↓文章底部点击免费领取↓↓

目录

  • 第一步 前端处理
  • 第二步 后端处理
  • 第三步 nginx代理

第一步 前端处理

打开constant.js文件,略作修改:

// 这个 注释掉
export const serverUrl = 'wss://127.0.0.1:18080'// 改成下面这个
const protocol = window.location.protocol === 'https:' ? 'wss://' : 'ws://'
const host = window.location.host
const server = protocol + hostexport const serverUrl = process.env.NODE_ENV === 'development' ? 'ws://127.0.0.1:18080' : server

当然,这里代码写的不是很优雅。但是,目前最主要的目的是能用就行,所以这里后面再改。

然后再执行npm run build,打包出dist文件。

第二步 后端处理

打开后端文件,将打包好的dist文件放到根目录下,然后在app.js文件中加入以下代码:

app.use(express.static('./dist'));
app.use(function (req,res,next) {console.log(__dirname,'xxxx');const filePath = path.join(__dirname,'/dist/index.html'); // 使用 path.join 将文件路径转换为绝对路径res.sendFile(filePath);
});

里面dist的路径要和你放dist文件的路径保持一致。

第三步 nginx代理

不会nginx的,可以看这篇简单理解下,安装下载里面也有。

这里主要是nginx的配置,这个是我的配置:

    server {listen 8088; # 前端端口地址listen 443 ssl http2;server_name  你的内网地址;ssl_certificate      "D:\webRTC\server.crt"; # 证书地址ssl_certificate_key  "D:\webRTC\server.key"; # 证书地址# http重定向到httpsif ($scheme = http) {return 301 https://$host:443$request_uri;}#charset koi8-r;#access_log  logs/host.access.log  main;location / {proxy_pass http://127.0.0.1:18080; # 这里就是信令服务启动的服务地址# proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Host $http_host;proxy_set_header X-Forwarded-Port $server_port;proxy_set_header X-Forwarded-Proto $scheme;## 信令核心配置 必须开启支持 websocket proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";# proxy_redirect http:// https://;}#error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}# proxy the PHP scripts to Apache listening on 127.0.0.1:80##location ~ \.php$ {#    proxy_pass   http://127.0.0.1;#}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000##location ~ \.php$ {#    root           html;#    fastcgi_pass   127.0.0.1:9000;#    fastcgi_index  index.php;#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;#    include        fastcgi_params;#}# deny access to .htaccess files, if Apache's document root# concurs with nginx's one##location ~ /\.ht {#    deny  all;#}}

这里你可以直接复制,要改的地方主要有三个前端端口地址、内网地址还有证书地址。其他的配置不理解没关系,首要目的是能用。

如果有问题,可以去看nginx目录下的logs文件,里面有error.log文件,可以从这里找找看;还得注意端口号是不是开放了.

粉丝福利, 免费领取C++音视频学习资料包+学习路线大纲、技术视频/代码,内容包括(音视频开发,面试题,FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,编解码,推拉流,srs)↓↓↓↓↓↓见下面↓↓文章底部点击免费领取↓↓

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

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

相关文章

银河麒麟服务器系统中intel-x710网卡丢包问题

银河麒麟服务器系统中intel-x710网卡丢包问题 一 系统环境二 问题描述三 问题分析过程3.1 查看网卡配置文件3.2 netstat -ni查看丢包和重传3.3 使用ethtool -S {网卡名}查看drop3.4 使用sar -n DEV查看丢包情况3.5 使用sar -n ETCP 1查看重传情况3.6 查看/proc/net/snmp中&…

python内置函数 N

python内置函数 N Python 解释器内置了很多函数和类型,任何时候都能使用。 N 名称描述next返回迭代器中的下一个元素。 next(iterator) next(iterator) next(iterator, default) next()是一个内置函数,用于从迭代器中获取下一个项目。它通常与迭代…

MySQL数据库基本操作和管理

目录 一.MySQL数据库基本操作 1.SQL分类 (1)数据库:database (2)表:table,行:row 列:column (3)索引:index (4&…

Resilience4j原理及应用:构建高可用性系统的熔断、限流与容错机制(一)

本系列文章简介: 在本系列文章中,我们将深入探讨Resilience4j的原理及应用,包括熔断器、限流器和容错策略的工作原理、配置方法以及最佳实践。通过学习和掌握Resilience4j的使用技巧,我们将能够更好地构建高可用性系统&#xff0c…

Linux网络编程: TCP协议首部与可选项简述

一、TCP/IP五层模型 物理层(Physical Layer):物理层是最底层,负责传输比特流(bitstream)以及物理介质的传输方式。它定义了如何在物理媒介上传输原始的比特流,例如通过电缆、光纤或无线传输等。…

python中字典相关知识点总结

1.字典的定义 字典:在Python中,字典是一系列键-值对。每个键都与一个值相关联,程序员可以通过键来访问与之相关联的值。 实际举例: student{name:xincun,age:18} 通过实例我们可以发现,键-值对是两个相关联的值。指…

如何实现数据库的主从复制?

如何实现数据库的主从复制? 数据库的主从复制是实现数据备份、负载均衡和故障恢复的重要策略。它涉及一个主数据库(Master)和一个或多个从数据库(Slave),主数据库负责处理写入操作,而从数据库则…

代码随想录算法训练营第二十九天|491.递增子序列、46.全排列、47.全排列 II

文档讲解&#xff1a;491.递增子序列、46.全排列、47.全排列 II 题目链接&#xff1a;491.递增子序列、46.全排列、47.全排列 II 491.递增子序列 class Solution {List<List<Integer>> res new ArrayList<>();List<Integer> path new ArrayList<…

CodeWhisperer插件

一、前言 产品官网地址&#xff1a;What is CodeWhisperer? - CodeWhisperer Amazon CodeWhisperer 是一个通用的、由机器学习驱动的代码生成器&#xff0c;可实时为您提供代码建议。在您编写代码时&#xff0c;CodeWhisperer 会根据您现有的代码和注释自动生成建议。您的个…

JAVA 100道题(6)

6.创建一个表示矩形的类&#xff0c;包括宽度和高度属性&#xff0c;以及计算面积和周长的方法。 下面是一个简单的Python类&#xff0c;表示矩形&#xff0c;包含宽度和高度属性&#xff0c;以及计算面积和周长的方法&#xff1a; python复制代码 class Rectangle: def __ini…

机器人路径规划:基于斑翠鸟优化算法(Pied Kingfisher Optimizer ,PKO)的机器人路径规划(提供MATLAB代码)

一、机器人路径规划介绍 移动机器人&#xff08;Mobile robot&#xff0c;MR&#xff09;的路径规划是 移动机器人研究的重要分支之&#xff0c;是对其进行控制的基础。根据环境信息的已知程度不同&#xff0c;路径规划分为基于环境信息已知的全局路径规划和基于环境信息未知或…

【随笔馆001-安住当下是最高的人生智慧】

&#x1f332;今天我去另外一个地方参加会议&#xff0c;结束后叫了一个滴滴&#xff0c;结果司机走错了路害我等了好久。我开始有点不悦&#xff0c;突然听到马路对面有一个人在弹萨克斯。我想与其在这里焦躁地等司机&#xff0c;还不如静下心来好好欣赏音乐。就这样&#xff…

【ROS】解决编译含有Python的ROS包遇到的 “Could NOT find PY_em (missing: PY_EM)“ 问题

使用ROS编译含有Python的ROS包时会遇到 “Could NOT find PY_em (missing: PY_EM)” 的错误。这个问题通常是由于ROS找不到正确的Python解释器而导致的。解决方法&#xff1a;通过指定正确的Python解释器路径来解决这个问题。Ubuntu系统的Python解释器通常位于 /usr/bin/python…

日期问题总结

做日期问题,首先把模版写下来,再根据具体情况具体分析,基本上考试考到日期问题都是模拟和枚举,数据量也不会太大,所以我们根据题目要求直接打暴力就可以过. 模板&#xff1a; const int months[]{//平年天数 0,31,28,31,30,31,30,31,31,30,31,30,31 }; int is_leap(int y){//…

小项目知识点

0.vue运行自启动 "dev": "vite --open" //package.json 1.Element-plus 安装element-plus pnpm i element-plus 如何使用&#xff1f; <el-button :icon"Plus">按钮</el-button> <script setup langts> import { Plus …

mysql 数据库 增删改查 基本操作

目录 一 SQL 详细介绍 &#xff08;一&#xff09;SQL 分类 &#xff08;二&#xff09; SQL 语言规范 &#xff08;三&#xff09;数据库对象和命名 1&#xff0c;数据库的组件(对象)&#xff1a; 2&#xff0c;命名规则&#xff1a; &#xff08;四&#xff09; SQL…

【Rust】——panic!和不可恢复的错误

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…

使用Python查找字符串中包含的多个元素

目录 一、引言 二、基本字符串操作 使用in关键字查找子字符串 使用循环和条件判断查找多个子字符串 三、使用正则表达式进行高级搜索 导入re模块 使用re.search()查找单个模式 使用re.findall()查找多个模式 四、案例与代码 五、优化与扩展 六、总结 一、引言 在Py…

【5G NB-IoT NTN】3GPP R17 NB-IoT NTN介绍

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G算力网络技术标准研究。 博客…

20万买新能源,除了烂大街的车,还可以选“精而美”

美”文 | AUTO芯球 作者 | 雷歌 “旧车撞了&#xff0c;准备买新车”。 前几天老家一个同学发来消息&#xff0c;春节他追尾了别人的车&#xff0c;不光赔了钱&#xff0c;还把自己的车车头撞废了&#xff0c;修好得一大笔钱&#xff0c;他干脆当废铁1万块钱卖给二手车商了。…