El estado de conexión de webSocket se puede determinar según el atributo readyState, el valor de este atributo puede ser el siguiente:
0: Corresponde a la constante CONNECTING (valor numérico 0), la conexión se está estableciendo y aún no se ha completado. La conexión aún no se ha establecido.
1: Corresponde a la constante ABIERTO (valor numérico 1), la conexión se establece exitosamente y se puede realizar la comunicación. La conexión WebSocket está establecida y la comunicación es posible.
2: Correspondiente a la constante CIERRE (valor numérico 2), la conexión está experimentando un protocolo de enlace de cierre y se cerrará pronto. La conexión está pasando por el apretón de manos de cierre.
3: Correspondiente a la constante CERRADO (valor numérico 3), la conexión se ha cerrado o no se ha establecido en absoluto. La conexión se ha cerrado o no se ha podido abrir.
Según bufferedAmount, puedes saber cuántos bytes de datos están esperando ser enviados. Si el websocket ha llamado al método close, esta propiedad seguirá creciendo.