files/en-us/web/api/websocket/index.md
{{APIRef("WebSockets API")}}{{AvailableInWorkers}}
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.
[!NOTE] The
WebSocketAPI has no way to apply backpressure, therefore when messages arrive faster than the application can process them, the application will either fill up the device's memory by buffering those messages, become unresponsive due to 100% CPU usage, or both. For an alternative that provides backpressure automatically, see {{domxref("WebSocketStream")}}.
{{InheritanceDiagram}}
WebSocket object.Listen to these events using addEventListener() or by assigning an event listener to the oneventname property of this interface.
WebSocket is closed.
Also available via the onclose propertyWebSocket has been closed because of an error, such as when some data couldn't be sent.
Also available via the onerror property.WebSocket.
Also available via the onmessage property.WebSocket is opened.
Also available via the onopen property.// 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}}
{{Compat}}