Package org.eclipse.jetty.websocket.api
Class StatusCode
- java.lang.Object
-
- org.eclipse.jetty.websocket.api.StatusCode
-
public final class StatusCode extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description static int
ABNORMAL
Abnormal Close is a synonym forNO_CLOSE
, used to indicate a close condition where no close frame was processed from the remote side.static int
BAD_DATA
1003 indicates that an endpoint is terminating the connection because it has received a type of data it cannot accept (e.g., an endpoint that understands only text data MAY send this if it receives a binary message).static int
BAD_PAYLOAD
1007 indicates that an endpoint is terminating the connection because it has received data within a message that was not consistent with the type of the message (e.g., non-UTF-8 [RFC3629] data within a text message).static int
FAILED_TLS_HANDSHAKE
1015 is a reserved value and MUST NOT be set as a status code in a Close control frame by an endpoint.static int
INVALID_UPSTREAM_RESPONSE
1014 indicates that a gateway or proxy received and invalid upstream response.static int
MESSAGE_TOO_LARGE
1009 indicates that an endpoint is terminating the connection because it has received a message that is too big for it to process.static int
NO_CLOSE
1006 is a reserved value and MUST NOT be set as a status code in a Close control frame by an endpoint.static int
NO_CODE
1005 is a reserved value and MUST NOT be set as a status code in a Close control frame by an endpoint.static int
NORMAL
1000 indicates a normal closure, meaning that the purpose for which the connection was established has been fulfilled.static int
POLICY_VIOLATION
1008 indicates that an endpoint is terminating the connection because it has received a message that violates its policy.static int
PROTOCOL
1002 indicates that an endpoint is terminating the connection due to a protocol error.static int
REQUIRED_EXTENSION
1010 indicates that an endpoint (client) is terminating the connection because it has expected the server to negotiate one or more extension, but the server didn't return them in the response message of the WebSocket handshake.static int
SERVER_ERROR
1011 indicates that a server is terminating the connection because it encountered an unexpected condition that prevented it from fulfilling the request.static int
SERVICE_RESTART
1012 indicates that the service is restarted.static int
SHUTDOWN
1001 indicates that an endpoint is "going away", such as a server going down or a browser having navigated away from a page.static int
TRY_AGAIN_LATER
1013 indicates that the service is experiencing overload.static int
UNDEFINED
Reserved.
-
Constructor Summary
Constructors Constructor Description StatusCode()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static boolean
isFatal(int statusCode)
Test if provided status code is a fatal failure for bad protocol behavior.static boolean
isTransmittable(int statusCode)
Test if provided status code can be sent/received on a WebSocket close.
-
-
-
Field Detail
-
NORMAL
public static final int NORMAL
1000 indicates a normal closure, meaning that the purpose for which the connection was established has been fulfilled.- See Also:
- Constant Field Values
-
SHUTDOWN
public static final int SHUTDOWN
1001 indicates that an endpoint is "going away", such as a server going down or a browser having navigated away from a page.- See Also:
- Constant Field Values
-
PROTOCOL
public static final int PROTOCOL
1002 indicates that an endpoint is terminating the connection due to a protocol error.- See Also:
- Constant Field Values
-
BAD_DATA
public static final int BAD_DATA
1003 indicates that an endpoint is terminating the connection because it has received a type of data it cannot accept (e.g., an endpoint that understands only text data MAY send this if it receives a binary message).- See Also:
- Constant Field Values
-
UNDEFINED
public static final int UNDEFINED
Reserved. The specific meaning might be defined in the future.- See Also:
- Constant Field Values
-
NO_CODE
public static final int NO_CODE
1005 is a reserved value and MUST NOT be set as a status code in a Close control frame by an endpoint. It is designated for use in applications expecting a status code to indicate that no status code was actually present.- See Also:
- Constant Field Values
-
NO_CLOSE
public static final int NO_CLOSE
1006 is a reserved value and MUST NOT be set as a status code in a Close control frame by an endpoint. It is designated for use in applications expecting a status code to indicate that the connection was closed abnormally, e.g., without sending or receiving a Close control frame.- See Also:
- Constant Field Values
-
ABNORMAL
public static final int ABNORMAL
Abnormal Close is a synonym forNO_CLOSE
, used to indicate a close condition where no close frame was processed from the remote side.- See Also:
- Constant Field Values
-
BAD_PAYLOAD
public static final int BAD_PAYLOAD
1007 indicates that an endpoint is terminating the connection because it has received data within a message that was not consistent with the type of the message (e.g., non-UTF-8 [RFC3629] data within a text message).- See Also:
- Constant Field Values
-
POLICY_VIOLATION
public static final int POLICY_VIOLATION
1008 indicates that an endpoint is terminating the connection because it has received a message that violates its policy. This is a generic status code that can be returned when there is no other more suitable status code (e.g., 1003 or 1009) or if there is a need to hide specific details about the policy.- See Also:
- Constant Field Values
-
MESSAGE_TOO_LARGE
public static final int MESSAGE_TOO_LARGE
1009 indicates that an endpoint is terminating the connection because it has received a message that is too big for it to process.- See Also:
- Constant Field Values
-
REQUIRED_EXTENSION
public static final int REQUIRED_EXTENSION
1010 indicates that an endpoint (client) is terminating the connection because it has expected the server to negotiate one or more extension, but the server didn't return them in the response message of the WebSocket handshake. The list of extensions that are needed SHOULD appear in the /reason/ part of the Close frame. Note that this status code is not used by the server, because it can fail the WebSocket handshake instead.- See Also:
- Constant Field Values
-
SERVER_ERROR
public static final int SERVER_ERROR
1011 indicates that a server is terminating the connection because it encountered an unexpected condition that prevented it from fulfilling the request.- See Also:
- Constant Field Values
-
SERVICE_RESTART
public static final int SERVICE_RESTART
1012 indicates that the service is restarted. a client may reconnect, and if it chooses to do, should reconnect using a randomized delay of 5 - 30s.- See Also:
- Constant Field Values
-
TRY_AGAIN_LATER
public static final int TRY_AGAIN_LATER
1013 indicates that the service is experiencing overload. a client should only connect to a different IP (when there are multiple for the target) or reconnect to the same IP upon user action.- See Also:
- Constant Field Values
-
INVALID_UPSTREAM_RESPONSE
public static final int INVALID_UPSTREAM_RESPONSE
1014 indicates that a gateway or proxy received and invalid upstream response.- See Also:
- Constant Field Values
-
FAILED_TLS_HANDSHAKE
public static final int FAILED_TLS_HANDSHAKE
1015 is a reserved value and MUST NOT be set as a status code in a Close control frame by an endpoint. It is designated for use in applications expecting a status code to indicate that the connection was closed due to a failure to perform a TLS handshake (e.g., the server certificate can't be verified).- See Also:
- Constant Field Values
-
-
Method Detail
-
isFatal
public static boolean isFatal(int statusCode)
Test if provided status code is a fatal failure for bad protocol behavior.- Parameters:
statusCode
- the status code to test- Returns:
- true if fatal status code
-
isTransmittable
public static boolean isTransmittable(int statusCode)
Test if provided status code can be sent/received on a WebSocket close.This honors the RFC6455 rules and IANA rules.
- Parameters:
statusCode
- the statusCode to test- Returns:
- true if transmittable
-
-