应用+实现概述
在我们的应用程序中,我们需要执行视频录制。我们继续使用托管在 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/