My memory is fuzzy, but I'm pretty sure I did this with WebRTC a while ago. Use RTCPeerConnection in unreliable mode, "peer" with the server, and you should have a UDP-backed SCTP connection. I'll try to dig up my PoCs on this.
Edit: Oh he mentions this, but invalidates it due to the complexity of typical P2P:
> But from a game developer point of view, all this complexity seems like dead weight, when STUN, ICE and TURN are completely completely unnecessary to communicate with dedicated servers, which have public IPs.
I don't remember this being complex (there was some off-the-shelf library for getting a data connection on the server-side), but YMMV.
That's because you don't need to implement any of those things for a basic client-server architecture. Unfortunately it looks like the author saw the massive and complex webrtc.org implementation and gave up, rather than try writing their own minimal implementation, or borrow from other implementations like Janus (https://janus.conf.meetecho.com/textroomtest.html).
https://github.com/cjb/serverless-webrtc/
EDIT:
Aha! I based my code on: https://github.com/js-platform/node-webrtc/blob/develop/exam...