if a socket is closed (socket.close()) while an upgrade is happening, i.e. after the server received the ping (probe) and sent his own pong (probe), but before he received the upgrade packet, and the old, polling socket is currently not writable (i.e. the close packet was not sent), the ws transport stays open and both client and server, but no data is sent through it since the eio server's socket is on closed.
by calling a transport.close if an upgrade is received on any readyState but open, the race condition does not occur anymore in our tests.
close socket if upgrade is received and socket.readyState != open