Nice that they're going to write the connection part properly. I had to switch from socket.io to sockjs a long time ago because socket.io was just too flaky. The code was pretty ad-hoc with its state (mishmash of .reconnecting, .reconnected, .disconnected, etc. predicates), and clients would randomly get stuck in in-between states if they were on 3G etc.
I had the same experience. socket.io was too flaky. Also I didn't need Flash support etc. In the end when I started to fix socket.io code to suit my needs and to handle the weird errors, I simply hacked together something in Go that pulls messages from Redis and writes them to Websocket or as HTTP GET response. It has only Websocket and HTTP POST/GET support but who cares. The simpler the code for handling these things, the better. Maybe socket.io got too complicated or something.
In my experience, Websocket is not something to depend on. But it's really nice to have and should be used as an upgrade if available.