Great job on updating.
It’s funny, as I do remember writing WebSockets C# server code by the time there was no WS server side implementations at that time. I was glad with results, but it wasn’t performing as good as later on appeared solutions too. So I’ve switched to using same as you have. Although that project then got some dust over it
Bear in mind, that Socket.IO supports fallback to XHR (long polling), which is no good for real-time apps. And there is pretty much guarantee that if platform supports WebGL, then it will support WS. The problem might be that Firewall or network infrastructure might be blocking 101 Switching Protocol HTTP header. Solution is simple for it: use HTTPS (SSL).
So to make sure user clients don’t have very bad network latency, make sure Socket.IO only uses WebSockets.
Great job so far! It is fun to play
Although, walking back on fire and dying - is fairly annoying :(((