Creo un servidor usando el programa SocketTest v 3.0.0 .
Intenté conectarme con JavaScript a mi propio servidor,
Cuando aparece indefinido en la consola, recibo un mensaje de un cliente de JavaScript; 
El mensaje es;
GET / HTTP/1.1 Host: 127.0.0.1:9090 Connection: Upgrade Pragma: no-cache Cache-Control: no-cache User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4655.6 Safari/537.36 Upgrade: websocket Origin: chrome://new-tab-page Sec-WebSocket-Version: 13 Accept-Encoding: gzip, deflate, br Accept-Language: en-US,en;q=0.9,tr-TR;q=0.8,tr;q=0.7 Sec-WebSocket-Key: yeTxrheLM3XMmBowpT5DhQ== Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits Cuando ejecuto ws.send("hello server") , aparece este error;
Uncaught DOMException: Failed to execute 'send' on 'WebSocket': Still in CONNECTING state.Después de esperar un rato, el cliente se apaga automáticamente.
Esta aplicación de prueba de socket (si es la que está usando) crea un servidor TCP genérico, no un servidor webSocket. Un cliente webSocket DEBE conectarse a un servidor webSocket. Necesita algo que hable el protocolo de conexión webSocket para tener una conexión exitosa y cuando lo apunte a un servidor TCP simple, enviará su solicitud de conexión inicial, pero no recibirá la respuesta que espera (la primera etapa de la conexión webSocket protocolo) y, por lo tanto, nunca se conectan con éxito.
FYI, puede ver cómo funciona un servidor webSocket básico aquí en MDN y eso le mostrará una muestra del protocolo de conexión webSocket que espera un cliente webSocket (que su servidor TCP genérico no proporciona).