使用WebRTC实现多人视频会议

news2024/12/22 6:02:53

1.初步准备

1.1.使用同事nodejs开发的一个信令服务器。提供Https的WebSocket功能

1.2.准备一个多人视频会议的客户端Web程序client.html

2.遇到问题

2.1.在Tomcat下打开client.html,如果不使用http://127.0.0.1:8081/vedio/client.html,而使用实际IP地址访问如http://192.168.1.136:8081/vedio/client.html

 就会出现如下图的问题,没有权限打开本地摄像头和麦克风:

 

Uncaught TypeError: Cannot read properties of undefined (reading 'getUserMedia')
    at createLocalStream (client.html:26:36)
    at client.html:178:9

2.2.解决chrome同源问题 

been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource

可以采用的解决方法参考:https://www.dgrt.cn/a/2076488.html?action=onClick

 2.3.由于同事开发的信令服务器使用了自签名证书,chrome等浏览器会报如下错误:

net::ERR_CERT_AUTHORITY_INVALID

解决方案1: (chrome测试没有效果)

代码忽略

					const socket = io.connect('https://127.0.0.1:8443', {
					    rejectUnauthorized: false//由于信令服务器使用了自签名证书
					});

解决方案2: (chrome测试没有效果,可能是因为我不会启动解决了同源问题的浏览器2)

将chrome添加到环境变量中(我应该把chome2加到系统环境变量),然后用命令行打开浏览器

 解决方案3:(可以,目前触发了信令服务器的崩溃,信令服务器已经收到了请求)

  1. 启动 Chrome 浏览器。

  2. 在地址栏中输入 chrome://flags 并按下回车键,这将打开 Chrome 的隐藏配置页面。

  3. 在搜索框中搜索 "ignore certificate errors"(忽略证书错误)。

  4. 在结果中找到 "Allow invalid certificates for resources loaded from localhost"(允许从 localhost 加载的资源使用无效证书)并将其设置为 "Enabled"(已启用)。

  5. 重启 Chrome 浏览器。

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

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

相关文章

DETR的位置编码

记录一下,以防忘记。 首先,致谢知乎vincent DETR论文详解 DETR中有这样一个类和一个包装函数 class NestedTensor(object):def __init__(self, tensors, mask: Optional[Tensor]):self.tensors tensorsself.mask maskdef to(self, device):# type: …

C知道,CSDN 出来的AI尝试

已经上图,算力不知道怎么样。 C知道 (csdn.net)

JDK、JRE与JVM三者之间的关系及区别

文章目录 0、关系1、JDK2、JRE3、JVM 0、关系 JDK JRE Java 开发工具包 [Java,Javac,Javadoc,Javap等]JRE JVM Java 的核心类库 1、JDK 什么是JDK,JDK是用于Java程序开发的最小环境,包含:Java程序设计语言,Java虚拟机&#…

git : 从入门到实战进阶

目录 0. 前言 1. git stash: 暂时保存本地修改 2. git push时发生冲突怎么办? 3. 访问过去的提交版本:git checkout 3.1 detached HEAD 3.2 “detached HEAD”状态下所作的修改会怎样呢? 3.3 “detached HEAD”状态下所作的修改如何汇…

leetcode100.相同的树

⭐️ 题目描述 🌟 leetcode链接:相同的树 1️⃣ 代码: bool isSameTree(struct TreeNode* p, struct TreeNode* q){// 判断两棵树当前结点是否为空if (p NULL && q NULL) {// 说明是相同的return true;}// 来到这里有几种情况// …

causal-learn ModuleNotFoundError: No module named ‘pygam‘

调用 causallearn 库包,测试CAM-UV算法时报错: No module named pygam 解决方法: pip install pygam 参考链接: 【Python Causal Learning Toolbox】causallearn 库包的使用、报错修改_板砖板砖我是兔子的博客-CSDN博客

java ArratList深拷贝

引用深拷贝 便捷方法 class Test {public static void main(String[] args) {ArrayList<User> list new ArrayList<>();for (int i 0; i < 3; i) {User user new User(i, "name" i);list.add(user);}ArrayList<User> list1 new ArrayList…

超细致的性能测试流程,你get了吗?

性能测试&#xff1a;利用工具模拟大量用户操作&#xff0c;验证系统承受的负载情况。 性能测试的目的&#xff1a;找到潜在的性能问题或瓶颈&#xff0c;分析并解决&#xff1b;找出性能变化趋势&#xff0c;为后续扩展系统提供参考。测试监控&#xff1a;基准测试、配置测试…

【JavaEE】DI与DL的介绍-Spring项目的创建-Bean对象的存储与获取

Spring的开发要点总结 文章目录 【JavaEE】Spring的开发要点总结&#xff08;1&#xff09;1. DI 和 DL1.1 DI 依赖注入1.2 DL 依赖查询1.3 DI 与 DL的区别1.4 IoC 与 DI/DL 的区别 2. Spring项目的创建2.1 创建Maven项目2.2 设置国内源2.2.1 勾选2.2.2 删除本地jar包2.2.3 re…

(栈队列堆) 剑指 Offer 31. 栈的压入、弹出序列 ——【Leetcode每日一题】

❓ 剑指 Offer 31. 栈的压入、弹出序列 难度&#xff1a;中等 输入两个整数序列&#xff0c;第一个序列表示栈的压入顺序&#xff0c;请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如&#xff0c;序列 {1,2,3,4,5} 是某栈的压栈序列&#xff0c;序…

好的CRM需要有哪些特点?

CRM客户管理系统在企业中占有举足轻重的地位&#xff0c;既是战略工具又可以强化部门间的团队协作、优化销售流程、缩短销售周期。市面上crm做得比较好的公司有哪些&#xff1f; 1.上榜Gartner魔力象限 好的CRM市场的引领、产品研发的持续投入、技术创新以及不断增长的市场份…

面试题 02.07. 链表相交

给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交&#xff1a; 题目数据 保证 整个链式结构中不存在环。 注意&#xff0c;函数返回结果后&#x…

划片机的作用将晶圆分割成独立的芯片

划片机是将晶圆分割成独立芯片的关键设备之一。在半导体制造过程中&#xff0c;晶圆划片机用于将整个晶圆切割成单个的芯片&#xff0c;这个过程被称为“晶圆分割”或“晶圆切割”。 晶圆划片机通常采用精密的机械传动系统、高精度的切割刀具和先进的控制系统&#xff0c;以确保…

Kafka - AR 、ISR、OSR,以及HW和LEO之间的关系

文章目录 引子举例说明 引子 AR&#xff08;Assigned Replication&#xff09;&#xff1a; 分区中的所有副本统称为AR&#xff08;Assigned Replicas&#xff09; ISR&#xff08;In-Sync Replicas&#xff09;&#xff1a;同步副本集合 ISR是指当前与主副本保持同步的副本集合…

JavaSwing+MySQL的酒店管理系统

点击以下链接获取源码&#xff1a; https://download.csdn.net/download/qq_64505944/88063706?spm1001.2014.3001.5503 JDK1.8、MySQL5.7 功能&#xff1a;散客开单&#xff1a;完成散客的开单&#xff0c;可一次最多开5间相同类型的房间。 2、团体开单&#xff1a;完成团体…

找不到类NoClassDefFoundError: ionetty.util.intemnal.Platformlependent0

解决方案&#xff0c;jdk版本的问题&#xff0c;在project structure 中把项目jdk改为1.8

[GXYCTF2019]simple CPP

前言 三个加密区域&#xff0c;第一次是基本运算&#xff0c;八位叠加&#xff0c;z3方程 分析 第一轮加密&#xff0c;和Dst中模27异或 &#xff08;出题人对动调有很大意见呢&#xff09; 将输入的字符串按八位存入寄存器中&#xff0c;然后将寄存器内容转存到内存 第一次…

Tauri自带命令生成各平台图标

npm命令&#xff1a; npm run tauri icon yarn命令&#xff1a; yarn tauri icon 1.在项目根目录中放置一个app-icon.png (图片)文件: 图片最好长宽比是1:1&#xff1a;(其他好像会报错) 2.执行命令: npm run tauri icon 可以到文件里面查看 如果本地测试&#xff0c;图标…

记一次真实MySQL百万数据优化

证实下确实是150万+数据哈 原SQL 原SQL执行计划 原SQL执行时间 5秒左右 原SQL分析 思路来源 整体看下SQL好像没啥可优化的。那咱们就大错特错了。 可能有人会说B表为啥在A表后面不正常呀,因为这是内连接查询不是左右连接查询。A,B表的顺序是可以交换的(实测无影响) 首先我们…

leetcode97. 交错字符串(算法:动态规划)

题目&#xff1a; 给定三个字符串 s1、s2、s3&#xff0c;请你帮忙验证 s3 是否是由 s1 和 s2 交错 组成的。 两个字符串 s 和 t 交错 的定义与过程如下&#xff0c;其中每个字符串都会被分割成若干 非空 子字符串&#xff1a; s s1 s2 ... sn t t1 t2 ... tm |n - …