--- title: WebSocket slug: Web/API/WebSocket tags: - API - NeedsContent - NeedsTranslation - TopicStub - WebSocket - WebSockets translation_of: Web/API/WebSocket ---
{{APIRef("Web Sockets API")}}

The WebSocket object provides the API for creating and managing a WebSocket connection to a server, as well as for sending and receiving data on the connection.

To construct a WebSocket, use the WebSocket() constructor.

Constructor

{{domxref("WebSocket.WebSocket", "WebSocket(url[, protocols])")}}
Returns a newly created WebSocket object.

Constants

Constant Value
WebSocket.CONNECTING 0
WebSocket.OPEN 1
WebSocket.CLOSING 2
WebSocket.CLOSED 3

Properties

{{domxref("WebSocket.binaryType")}}
The binary data type used by the connection.
{{domxref("WebSocket.bufferedAmount")}} {{readonlyinline}}
The number of bytes of queued data.
{{domxref("WebSocket.extensions")}} {{readonlyinline}}
The extensions selected by the server.
{{domxref("WebSocket.onclose")}}
An event listener to be called when the connection is closed.
{{domxref("WebSocket.onerror")}}
An event listener to be called when an error occurs.
{{domxref("WebSocket.onmessage")}}
An event listener to be called when a message is received from the server.
{{domxref("WebSocket.onopen")}}
An event listener to be called when the connection is opened.
{{domxref("WebSocket.protocol")}} {{readonlyinline}}
The sub-protocol selected by the server.
{{domxref("WebSocket.readyState")}} {{readonlyinline}}
The current state of the connection.
{{domxref("WebSocket.url")}} {{readonlyinline}}
The absolute URL of the WebSocket.

Methods

{{domxref("WebSocket.close", "WebSocket.close([code[, reason]])")}}
Closes the connection.
{{domxref("WebSocket.send", "WebSocket.send(data)")}}
Enqueues data to be transmitted.

Events

Listen to these events using addEventListener() or by assigning an event listener to the oneventname property of this interface.

close
Fired when a connection with a WebSocket is closed.
Also available via the onclose property
error
Fired when a connection with a WebSockethas been closed because of an error, such as when some data couldn't be sent.
Also available via the onerror property.
message
Fired when data is received through a WebSocket.
Also available via the onmessage property.
open
Fired when a connection with a WebSocketis opened.
Also available via the onopen property.

Examples

// Create WebSocket connection.
const socket = new WebSocket('ws://localhost:8080');

// Connection opened
socket.addEventListener('open', function (event) {
    socket.send('Hello Server!');
});

// Listen for messages
socket.addEventListener('message', function (event) {
    console.log('Message from server ', event.data);
});

Specifications

Specification Status
{{SpecName("HTML WHATWG", "#the-websocket-interface", "WebSocket")}} {{Spec2("HTML WHATWG")}}

Browser compatibility

{{Compat("api.WebSocket")}}

See also