I'd like to add that, in practice, socket.io doesn't work well for mobile HTML5 multiplayer games. We found that long-polling requests tend to get dropped without informing the mobile client.
Our solution so far has been to roll our own mobile networking layer, with redundancies and timeouts especially tuned for mobile.