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;
}