我正在构建一个应用程序,该应用程序将通过WebRTC与办公室网络中的其他设备进行通信。对于网络中的手机,我想使用PWA来完成这项工作。
PWA是否可以运行后台服务,以通过WebRTC与其他设备通信?
答案 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 通道并将 Stream
或 ArrayBuffer
传输到 ServiceWorker 以完成请求。