60 lines
1.2 KiB
TypeScript
60 lines
1.2 KiB
TypeScript
/**
|
|
* WebSocket Protocol Constants
|
|
* Based on RFC 6455
|
|
*/
|
|
|
|
/**
|
|
* WebSocket opcode types
|
|
*/
|
|
export enum WebSocketOpcode {
|
|
CONTINUATION = 0x0,
|
|
TEXT = 0x1,
|
|
BINARY = 0x2,
|
|
CLOSE = 0x8,
|
|
PING = 0x9,
|
|
PONG = 0xa,
|
|
}
|
|
|
|
/**
|
|
* WebSocket close codes
|
|
*/
|
|
export enum WebSocketCloseCode {
|
|
NORMAL_CLOSURE = 1000,
|
|
GOING_AWAY = 1001,
|
|
PROTOCOL_ERROR = 1002,
|
|
UNSUPPORTED_DATA = 1003,
|
|
NO_STATUS_RECEIVED = 1005,
|
|
ABNORMAL_CLOSURE = 1006,
|
|
INVALID_FRAME_PAYLOAD_DATA = 1007,
|
|
POLICY_VIOLATION = 1008,
|
|
MESSAGE_TOO_BIG = 1009,
|
|
MISSING_EXTENSION = 1010,
|
|
INTERNAL_ERROR = 1011,
|
|
SERVICE_RESTART = 1012,
|
|
TRY_AGAIN_LATER = 1013,
|
|
BAD_GATEWAY = 1014,
|
|
TLS_HANDSHAKE = 1015,
|
|
}
|
|
|
|
/**
|
|
* WebSocket protocol version
|
|
*/
|
|
export const WEBSOCKET_VERSION = 13;
|
|
|
|
/**
|
|
* WebSocket magic string for handshake
|
|
*/
|
|
export const WEBSOCKET_MAGIC_STRING = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11';
|
|
|
|
/**
|
|
* WebSocket headers
|
|
*/
|
|
export const WEBSOCKET_HEADERS = {
|
|
UPGRADE: 'upgrade',
|
|
CONNECTION: 'connection',
|
|
SEC_WEBSOCKET_KEY: 'sec-websocket-key',
|
|
SEC_WEBSOCKET_VERSION: 'sec-websocket-version',
|
|
SEC_WEBSOCKET_ACCEPT: 'sec-websocket-accept',
|
|
SEC_WEBSOCKET_PROTOCOL: 'sec-websocket-protocol',
|
|
SEC_WEBSOCKET_EXTENSIONS: 'sec-websocket-extensions',
|
|
} as const; |