PWA可以在后台运行WebRTC连接吗?

时间:2019-02-19 12:16:14

标签: webrtc progressive-web-apps

我正在构建一个应用程序,该应用程序将通过WebRTC与办公室网络中的其他设备进行通信。对于网络中的手机,我想使用PWA来完成这项工作。

PWA是否可以运行后台服务,以通过WebRTC与其他设备通信?

3 个答案:

答案 0 :(得分:0)

从技术上讲,您也许可以在服务工作者中连接WebRTC,但它们intentionally have short lifespans可以使连接持续的时间不会超过几分钟。

答案 1 :(得分:0)

是的,可以在Android上正常运行,但是getUserMedia不能在PWA下使用,我的意思是在独立模式下

答案 2 :(得分:0)

对于后代,截至目前,WebRTC 在 ServiceWorkers 中不可用。 请参阅:Use WebRTC with WebWorker

这个请求已经提出了几年,将来可能会也可能不会实施。

W3C 在 ServiceWorker 中对 WebRTC 的请求:

当前的替代方案是使用 Transferable Streams。目前 Chrome 支持 Transferable 流。

https://github.com/whatwg/streams/blob/main/transferable-streams-explainer.md

可传输的 Stream JS 实现

对于不支持可传输流的浏览器,您可以使用可传输的 ArrayBuffer。

https://developer.mozilla.org/en-US/docs/Web/API/Transferable

您需要在窗口(非工作线程)范围内创建 WebRTC 通道并将 StreamArrayBuffer 传输到 ServiceWorker 以完成请求。