LearnBoost/socket.io-client — pull request #422 by vedratna (2012-04-27 10:54:19+00:00)
Title: fix for tranport fallback and multiple connection on reconnect

1) Issue with transport fallback (reproducible on Firefox 11.0 with SquidMan on Mac Lion)
we got some complains that socket.io doesn't connect to some proxy environment where websocket is blocked. Ideally it should fallback to xhr-polling but what happens is :
It tries to connect through websocket, times out, fallback to xhr-polling, gets connected through xhr-polling, now gets an onerror and onclose from websocket which makes socket disconnected and so on.....
This happens because old transport still consist the reference of socket and hence affects the actual connection.
2) Multiple connection on reconnect
As I mentioned above multiple transport shares the same socket reference and hence causes the multiple connection.

Fix:
Detach old transport when going to connect to new transport by changing the socket reference to 'orphan' socket (as per the current design it can't be null) and close the transport.