在网站上使用 getUserMedia 然后应该通过非安全的 websocket 连接进行通信

Use getUserMedia on a website which should then communicate through a non-secure websocket connection

我有一个用例,我需要在网站的安全上下文中使用 getUserMedia() 捕获相机流。该网站应与本地网络上移动应用程序(基于 Cordova)中的 websocket 服务器通信。

问题:

有什么办法可以解决吗?从可以添加到用户设备上的 homescreen/desktop 的网站创建 PWA 是否有帮助?我不知道在这种情况下是否会应用不同的安全策略。

如果不采取不自然的行为将浏览器置于调试模式,您就无法让浏览器违反有关 getUserMedia 和 websockets 的安全规则。因为 cybercreeps.

但是,如果您需要将数据推送到本地 http(不是 s)服务器,您可以使用一系列 POST 请求来完成。它们在当地会相当高效。这样的事情可能会起作用(未调试)。

function dataavailable (chunk) {
    const fd = new FormData();
    fd.set('media', chunk.data);
    fetch('http://localhost:8123/media/endpoint',
           {method: 'post', body:chunk.data })
}

如果您的本地服务器可以处理 http1.1,它将使用持久连接。