On Sun, 21 Oct 2018 23:05:06 -0400, Nick Sabalausky (Abscissa) wrote: > I'm afraid I'm not familiar with socket.io, and the homepage doesn't > seem to tell me much (it doesn't even say whether it uses TCP or UDP). > But that said, in D, the gold-standard for pretty much *anything* > related to networking and sockets is Vibe.D: http://vibed.org/
socket.io is a mix of XMLHttpRequest, websockets, and maybe long polling, based on HTTP of course. It's all Javascript, designed for a browser as a client and Node.js as a server. When socket.io was first created, websockets were *relatively* new, and a lot of Windows/IE users were still on IE8/9, so it probably made a fair bit of sense to use a tool that could provide okay-ish support for all browsers and better support for newer browsers. But there's little reason to use it today. The docs leave much to be desired. > For a realtime multiplayer games though, that's notoriously a whole > different can of worms. For that, you definitely do need UDP (which > again, Vibe.D supports). But, UDP being what it is, you'd still need to > design your program to handle UDP's inherently unguaranteed nature. > Vibe.D doesn't have a gaming-oriented networking system built on top of > UDP. And since the person's probably communicating between browser clients, WebRTC is likely the most practical target there. https://github.com/koldi/webrtc-dlang