javascript - Websocket - WSS 在视频录制中无法在 HTTPS 上工作

标签 javascript node.js https wss

应用+实现概述

在我们的应用程序中,我们需要执行视频录制。我们继续使用托管在 https://developer.mozilla.org/en/docs/Web/API/MediaRecorder_API 的 MediaRecorder API .

我们使用 getUserMedia API 来访问网络摄像头和麦克风。 我们使用 MediaRecorder API 记录短 blob 并将其发送到托管 NodeJS WebSocket 的应用程序服务器上。 (每 2 秒就会以短 blob 形式向服务器传输数据。

在应用服务器上,我们不断积累数据并最终创建一个 .webm 媒体文件。

问题: 所有这些都可以在 HTTP 协议(protocol)上正常工作,但是每当我们将应用程序放在 SSL 上时,就会开始出现以下描述的错误;

错误文本:“与 'wss://localhost:9000/' 的 WebSocket 连接失败:WebSocket 打开握手已取消”

错误截图:http://s33.postimg.org/9xasw0qa7/web_Socket_SSLIssue.jpg

你们中的任何人都可以在这里指导我们解决 HTTPS 的具体问题吗?

最佳答案

浏览器将拒绝 WebSocket 连接的自签名证书,因为它们认为它们不安全。您可以使用 letsencrypt 制作有效的免费证书但您需要首先编辑并将人脸域添加到主机文件中。

如果您使用 Windows,请按 win 键并过去 记事本%systemroot%\system32\drivers\etc\hosts 右键单击使用“以管理员身份运行”并添加假域名并保存

现在您需要使用带有新认证的 Nodejs 设置新的 SSL,以了解更多详细信息。 https://nodejs.org/api/tls.html#tls_tls_createserver_options_secureconnectionlistener

为了进行测试,您使用假域名而不是本地主机等。wss://fakedomain.com:9000

关于javascript - Websocket - WSS 在视频录制中无法在 HTTPS 上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37657150/

相关文章:

javascript - 在状态中使用方法参数进行 react

arrays - 模式 Mongoose 中的字符串数组

node.js - 从node.js调用已部署的智能合约

node.js - 将 swagger 添加到我的 Nodejs Restify 项目

javascript - 谷歌地图 : toggle destinations in directions

javascript - 关闭编译后有错误的代码

curl - 使用 Git 的 libcurl 中不支持或禁用协议(protocol) https

java - 重用 HttpsUrlConnection...不想每次都获得新连接。怎么复用?

javascript - 难以确定 JS/jQuery 代码中的 'this' 所指的内容

https - 如何执行来自Phoenix的HTTPS请求并忽略CA错误