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 浏览器。

Logo

音视频技术社区,一个全球开发者共同探讨、分享、学习音视频技术的平台,加入我们,与全球开发者一起创造更加优秀的音视频产品!

更多推荐