package org.java_websocket.framing; import org.java_websocket.exceptions.InvalidDataException; import org.java_websocket.exceptions.InvalidFrameException; public interface CloseFrame extends Framedata { /** * indicates a normal closure, meaning whatever purpose the connection was * established for has been fulfilled. */ public static final int NORMAL = 1000; /** * 1001 indicates that an endpoint is "going away", such as a server going * down, or a browser having navigated away from a page. */ public static final int GOING_AWAY = 1001; /** * 1002 indicates that an endpoint is terminating the connection due to a * protocol error. */ public static final int PROTOCOL_ERROR = 1002; /** * 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). */ public static final int REFUSE = 1003; /* 1004: Reserved. The specific meaning might be defined in the future. */ /** * 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. */ public static final int NOCODE = 1005; /** * 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. */ public static final int ABNORMAL_CLOSE = 1006; /** * 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). */ public static final int NO_UTF8 = 1007; /** * 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. */ public static final int POLICY_VALIDATION = 1008; /** * 1009 indicates that an endpoint is terminating the connection because it * has received a message which is too big for it to process. */ public static final int TOOBIG = 1009; /** * 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 which 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. */ public static final int EXTENSION = 1010; /** * 1011 indicates that a server is terminating the connection because it * encountered an unexpected condition that prevented it from fulfilling the * request. **/ public static final int UNEXPECTED_CONDITION = 1011; /** * 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). **/ public static final int TLS_ERROR = 1015; /** The connection had never been established */ public static final int NEVER_CONNECTED = -1; public static final int BUGGYCLOSE = -2; public static final int FLASHPOLICY = -3; public int getCloseCode() throws InvalidFrameException; public String getMessage() throws InvalidDataException; }