WebSocket
Baseline
Ampliamente disponible
*
Esta característica está consolidada y funciona en muchos dispositivos y versiones de navegador. Está disponible en todos los navegadores desde julio de 2015.
* Algunas partes de esta característica pueden tener distintos niveles de compatibilidad.
Nota: Esta característica está disponible en Web Workers.
El objeto WebSocket proporciona la API para crear y gestionar una conexión WebSocket a un servidor, así como para enviar y recibir datos a través de dicha conexión.
Para construir un WebSocket, usa el constructor WebSocket().
Nota:
La API de WebSocket no tiene forma de aplicar backpressure, por lo tanto, cuando los mensajes llegan más rápido de lo que la aplicación puede procesarlos, esta saturará la memoria del dispositivo al almacenarlos en el búfer, dejará de responder debido a un uso del 100% de la CPU, o ambas cosas. Si necesitas una alternativa que ofrezca backpressure automáticamente, consulta WebSocketStream.
Constructor
WebSocket()-
Devuelve un objeto
WebSocketrecién creado.
Propiedades de instancia
WebSocket.binaryType-
El tipo de datos binarios que usa la conexión.
WebSocket.bufferedAmountRead only-
El número de bytes de datos en cola.
WebSocket.extensionsRead only-
Las extensiones que ha seleccionado el servidor.
WebSocket.protocolRead only-
El subprotocolo que ha seleccionado el servidor.
WebSocket.readyStateRead only-
El estado actual de la conexión.
WebSocket.urlRead only-
La URL absoluta del WebSocket.
Métodos de instancia
WebSocket.close()-
Cierra la conexión.
WebSocket.send()-
Pone en cola los datos para transmitirlos.
Eventos
Escucha estos eventos con addEventListener() o asignando un detector de eventos a la propiedad oneventname de esta interfaz.
close-
Se dispara cuando se cierra una conexión con un
WebSocket. También está disponible mediante la propiedadonclose. error-
Se dispara cuando se cierra una conexión con un
WebSocketdebido a un error, por ejemplo, cuando no se han podido enviar algunos datos. También está disponible mediante la propiedadonerror. message-
Se dispara cuando se reciben datos a través de un
WebSocket. También está disponible mediante la propiedadonmessage. open-
Se dispara cuando se abre una conexión con un
WebSocket. También está disponible mediante la propiedadonopen.
Ejemplos
// Crea la conexión WebSocket.
const socket = new WebSocket("ws://localhost:8080");
// La conexión se ha abierto
socket.addEventListener("open", (event) => {
socket.send("¡Hola, servidor!");
});
// Escucha los mensajes
socket.addEventListener("message", (event) => {
console.log("Mensaje del servidor ", event.data);
});
Especificaciones
| Especificación |
|---|
| WebSockets> # the-websocket-interface> |