WebSocket
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Note: This feature is available in Web Workers.
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
WebSocket()
-
Returns a newly created
WebSocket
object.
Instance properties
WebSocket.binaryType
-
The binary data type used by the connection.
WebSocket.bufferedAmount
Read only-
The number of bytes of queued data.
WebSocket.extensions
Read only-
The extensions selected by the server.
WebSocket.protocol
Read only-
The sub-protocol selected by the server.
WebSocket.readyState
Read only-
The current state of the connection.
WebSocket.url
Read only-
The absolute URL of the WebSocket.
Instance methods
WebSocket.close()
-
Closes the connection.
WebSocket.send()
-
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 theonclose
property error
-
Fired when a connection with a
WebSocket
has been closed because of an error, such as when some data couldn't be sent. Also available via theonerror
property. message
-
Fired when data is received through a
WebSocket
. Also available via theonmessage
property. open
-
Fired when a connection with a
WebSocket
is opened. Also available via theonopen
property.
Examples
// Create WebSocket connection.
const socket = new WebSocket("ws://localhost:8080");
// Connection opened
socket.addEventListener("open", (event) => {
socket.send("Hello Server!");
});
// Listen for messages
socket.addEventListener("message", (event) => {
console.log("Message from server ", event.data);
});
Specifications
Specification |
---|
WebSockets Standard # the-websocket-interface |
Browser compatibility
BCD tables only load in the browser