Intente lo mismo que tu, cree un servidor básico en c++ y luego el cliente en html5+js, e igual que tu queda a la espera, ni siquiera se activa el evento onopen de webSocket solo el de onclose cuando termino la conexión. Para quitarme de la duda también intente con un cliente en as3 y c++, y ambos respondían de forma correcta.
Puede que sea por el tipo de servidor, o por como tu dijiste hay problemas probando en localhost.