support trying mutliple socketTransports when one fails. The app can try the list of supported socket transports sent from the server on the handshake until a successful one is found or all transports are tried.
add error code 417 to indicate that a transport is not supported.