--- title: WebSocket slug: Web/API/WebSocket tags: - API translation_of: Web/API/WebSocket ---
WebSocket
객체는 서버와의 WebSocket 연결을 생성하고 관리할 수 있는 API 들을 제공합니다. 이는 데이터를 전송하거나 주고 받는 등의 API 들을 포함합니다.
WebSocket
생성자는 하나의 필수 파라미터와, 하나의 옵셔널 파라미터를 받습니다:
WebSocket WebSocket( in DOMString url, in optional DOMString protocols ); WebSocket WebSocket( in DOMString url, in optional DOMString[] protocols );
url
protocols
{{optional_inline}}이 생성자는 예외가 발생할 수 있습니다:
SECURITY_ERR
void close(in optional unsigned long code, in optional DOMString reason); |
void send(in DOMString data); |
Attribute | Type | Description |
binaryType |
{{DOMXref("DOMString")}} | A string indicating the type of binary data being transmitted by the connection. This should be either "blob" if DOM {{domxref("Blob")}} objects are being used or "arraybuffer" if {{jsxref("ArrayBuffer")}} objects are being used. |
bufferedAmount |
unsigned long |
The number of bytes of data that have been queued using calls to {{manch("send")}} but not yet transmitted to the network. This value does not reset to zero when the connection is closed; if you keep calling {{manch("send")}}, this will continue to climb. Read only |
extensions |
{{DOMXref("DOMString")}} | The extensions selected by the server. This is currently only the empty string or a list of extensions as negotiated by the connection. |
onclose |
{{domxref("EventListener")}} | WebSocket 인터페이스의 연결상태가 readyState 에서CLOSED 로 바뀌었을 때 호출되는 이벤트 리스너입니다. 이 이벤트 리스너는 "close"라는 이름의 CloseEvent 를 받습니다. |
onerror |
{{domxref("EventListener")}} | "error" 라는 이름의 이벤트가 발생하면 처리할 핸들러입니다. 이는 에러가 발생하는 상황에 호출됩니다. |
onmessage |
{{domxref("EventListener")}} | "message" 이름의 MessageEvent 이벤트가 발생하면 처리할 핸들러입니다. 이는 서버로부터 메세지가 도착했을 때 호출됩니다. |
onopen |
{{domxref("EventListener")}} | WebSocket 인터페이스의 연결상태가 readyState 에서 OPEN 으로 바뀌었을 때 호출되는 이벤트 리스너입니다. ; 연결 상태가 OPEN 으로 바뀌었다는 말은 데이터를 주고 받을 준비가 되었다는 뜻입니다. 이 리스너가 처리하는 이벤트는 "open"이라는 이벤트 하나입니다. |
protocol |
{{DOMXref("DOMString")}} | 서버에 의해 선택된 서브 프로토콜을 가리킵니다; 이 값은 객체를 생성하면서 protocols 파라미터에 전달했던 값 들 중 하나입니다. |
readyState |
unsigned short |
연결의 현재 상태입니다; 값은 {{anch("Ready state constants")}} 중에 하나입니다. 읽기 전용. |
url |
{{DOMXref("DOMString")}} | 생성자에 의해 해석된 URL입니다. 이는 항상 절대 주소를 가리킵니다. 읽기 전용. |
아래의 값들은 readyState
어트리뷰트가 웹소켓의 연결 상태를 나타내기 위해서 사용됩니다.
Constant | Value | Description |
CONNECTING |
0 |
연결이 수립되지 않은 상태입니다. |
OPEN |
1 |
연결이 수립되어 데이터가 오고갈 수 있는 상태입니다. |
CLOSING |
2 |
연결이 닫히는 중 입니다. |
CLOSED |
3 |
연결이 종료되었거나, 연결에 실패한 경우입니다. |
맺어진 연결, 또는 연결 시도를 종료합니다. 이미 종료된 경우에는 아무 동작도 하지 않습니다.
void close( in optional unsigned short code, in optional DOMString reason );
code
{{optional_inline}}CloseEvent
페이지의 list of status codes 를 참고하세요.reason
{{optional_inline}}INVALID_ACCESS_ERR
code
값을 지정했습니다.SYNTAX_ERR
reason
값이 너무 길거나, 짝을 이루지 못하는 서로게이트 문자가 있습니다.Note: In Gecko, this method didn't support any parameters prior to Gecko 8.0 {{geckoRelease("8.0")}}.
웹소켓 연결을 통해 데이터를 서버로 전송합니다.
void send( in DOMString data ); void send( in ArrayBuffer data ); void send( in Blob data );
data
INVALID_STATE_ERR
OPEN
상태가 아닙니다.SYNTAX_ERR
Note: Gecko's implementation of the send()
method differs somewhat from the specification in {{Gecko("6.0")}}; Gecko returns a boolean
indicating whether or not the connection is still open (and, by extension, that the data was successfully queued or transmitted); this is corrected in {{Gecko("8.0")}}.
As of {{Gecko("11.0")}}, support for {{jsxref("ArrayBuffer")}} is implemented but not {{domxref("Blob")}} data types.
Specification | Status | Comment |
---|---|---|
{{SpecName("Websockets", "#the-websocket-interface", "WebSocket")}} | {{Spec2("Websockets")}} | Initial definition |