Support WebRTC Datachannels in Workers
I would like to propose that we support WebRTC Data Channel in Workers
(`WebWorker`, `ServiceWorker`, etc.)
WebRTC DataChannel is basically a drop-in replacement for `WebSocket`,
except it's peer-to-peer. For all the same reasons that `WebSocket`
was added to the `Worker` spec, we should add WebRTC DataChannel.
Here are some possible use cases:
- DataChannel in a `ServiceWorker` would support the use case of "peer
assisted delivery" a la [PeerCDN](https://www.peercdn.com/faq.html),
CDN/P2P CDN video streaming delivery, file transfer, etc.
- DataChannel in a `WebWorker` would support offloading CPU intensive
data transfer and subsequent processing to another thread.
- DataChannel in a `SharedWorker` would let one construct and reuse a
DHT (a decentralized/distributed lookup service similar to a hash
table) across tabs. Useful for routing to nodes in decentralized
Websockets are already available in Workers, so there likely aren't
any new security/privacy issues, just potential for exciting new data
channel use cases!
Data Channels are currently under review. The current priority level is low:
“We are still evaluating this technology. There may be significant spec stabilization, foundational work, or additional community input required before we can begin development.”
You can can follow progress at https://developer.microsoft.com/en-us/microsoft-edge/platform/status/rtcdatachannels
Lennart Grahl commented
Sorry for digging this up. But may I add the comment that data channels are mandatory in WebRTC. Thank you.
Feross Aboukhadijeh commented
Data channels *in workers* are under review? Or data channels, period?
The status page shows that the WebRTC v1.0 API is "In Development", but you realize that Data Channels are part of the WebRTC 1.0 API, right?