WebSocket

WebSocket 1000 Normal Closure vs 1002 Protocol Error

Both WebSocket 1000 (Normal Closure) and 1002 (Protocol Error) belong to the WebSocket Close Codes category. 1000 indicates that the connection has been closed cleanly, meaning the purpose for which it was established has been fulfilled. Both endpoints agree the session is complete. Meanwhile, 1002 means that an endpoint is terminating the connection because it received data that violates the WebSocket protocol specification.

설명

The connection has been closed cleanly, meaning the purpose for which it was established has been fulfilled. Both endpoints agree the session is complete.

이 코드를 보게 되는 경우

The WebSocket connection closed gracefully after both sides finished exchanging data. This is the expected close code for a successful session.

해결 방법

No fix needed — this indicates everything worked as intended. If you did not expect the connection to close, check your application logic for premature close() calls.

설명

An endpoint is terminating the connection because it received data that violates the WebSocket protocol specification.

이 코드를 보게 되는 경우

The WebSocket frame format is invalid — a malformed header, incorrect masking, or a reserved opcode was used. This usually indicates a broken client or proxy.

해결 방법

Check that both client and server strictly follow RFC 6455 framing rules. Inspect intermediary proxies that may be corrupting WebSocket frames.

주요 차이점

1.

WebSocket 1000: The connection has been closed cleanly, meaning the purpose for which it was established has been fulfilled. Both endpoints agree the session is complete.

2.

WebSocket 1002: An endpoint is terminating the connection because it received data that violates the WebSocket protocol specification.

3.

You encounter 1000 when the WebSocket connection closed gracefully after both sides finished exchanging data. This is the expected close code for a successful session.

4.

You encounter 1002 when the WebSocket frame format is invalid — a malformed header, incorrect masking, or a reserved opcode was used. This usually indicates a broken client or proxy.

언제 어떤 것을 사용할지

For 1000 (Normal Closure): No fix needed — this indicates everything worked as intended. If you did not expect the connection to close, check your application logic for premature close() calls. For 1002 (Protocol Error): Check that both client and server strictly follow RFC 6455 framing rules. Inspect intermediary proxies that may be corrupting WebSocket frames.

더 알아보기