We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

Esta traducción está incompleta. Por favor, ayuda a traducir este artículo del inglés.

Esta es una tecnología experimental
Comprueba la Tabla de compabilidad de navegadores cuidadosamente antes de usarla en producción.

 
El objeto WebSocket provee la API para la creación y administración de una conexión WebSocket a un servidor, así como también para enviar y recibir datos en la conexión.
 
El constructor de WebSocket acepta un parámetro requerido y otro opcional.

 

WebSocket WebSocket(
  in DOMString url,
  in optional DOMString protocols
);

WebSocket WebSocket(
  in DOMString url,
  in optional DOMString[] protocols
);

 

url
La URL a la cual se conecta, debe ser la URL con la cual el servidor WebSocket debe responder.
protocols Optional
Permite cualquier caso, desde un simple protocolo o un arreglo de cadenas de texto. Estas cadenas de texto son usadas para indicar subprotocolos, en los cuales un único servidor puede implementar múltiples subprotocolos para el WebSocket (por ejemplo, tu podrías esperar que un servido gestione diferentes tipos de interacciones dependiendo de un tipo específico de protocolo). Si no especificas un subprotocolo, se asume una cadena de texto vacía.
 

El constructor puede levantar excepciones:

SECURITY_ERR
El puerto en el cual la conexión se realiza se encuentra bloqueado.

Revisión de Métodos

void close(in optional unsigned long code, in optional DOMString reason);
void send(in DOMString data);

Atributos

Atributo Tipo Descricción
binaryType DOMString

Una cadena de texto indicando el tipo de dato binario que es transmitido por la conexión. Debe ser de cualquier manera "blob" si es se unas objetos DOM Blob  o bien "arraybuffer" ArrayBuffer si se usan otro tipo de objetos

bufferedAmount unsigned long

La cantidad de bytes de data que pueden ser almacenadas en cola utilizando llamadas a send() pero que aún no se han transmitido a la red. Este valor se reestablece a cero una vez que toda la información ha sido enviada. Este valor no vuelve a cero cuando la conexión es cerrada; si mantientes llamando send(), continuará acumulandose. Solo de lectura.

extensions DOMString

Las extensiones seleccionadas por el servidor. Esto solamente puede ser un string vacío o bien una lista de extensiones que es negociada por la conexión.

onclose EventListener

Un monitor de eventos que atiende una llamada cuando la conexión del WebSocket cambia a un estado CERRADO (CLOSED). El monitor recibe un CloseEvent llamado "cerrado".

onerror EventListener

Un monitor de eventos que es llamado cuando un error ocurre. Esto es un evento simple llamado "error"

onmessage EventListener

Un monitor de eventos que es llamado cuando un mensaje es recibido desde un servidor. El monitor recibe un objeto MessageEvent llamado "mensaje".

onopen EventListener Un monitor de eventos que es llamado cuando el estado readyState de la conexión Websocket cambia a OPEN. Esto indica que la conexión está lista para enviar y recibir datos. El evento es uno simple con el nombre "open".
protocol DOMString Una cadena indicando el nombre del sub-protocolo que el servidor ha seleccionado. Este puede ser una de las cadenas especificadas en el parámetro protocols cuando se ha creado el objeto Websocket.
readyState unsigned short El estado actual de la conexión. Este es uno de Ready state constants. Solo lectura.
url DOMString La URL como la resuelve el constructor. Esto siempre es una URL absoluta. Solo lectura.

Constantes

Ready state constants

Estas constantes son usadas por el atributo readyState para describir el estado de la conexión WebSocket.

Constante Valor Descripción
CONNECTING 0 La conexión no está aún abierta.
OPEN 1 La conexión está abierta y lista para comunicar.
CLOSING 2 La conexión está siendo cerrada.
CLOSED 3 La conexión está cerrada o no puede ser abierta.

Métodos

close()

Cierra la conexión o intento de conexión del WebSocket si lo hay. Si la conexión ya está cerrada, no hace nada.

void close(
  in optional unsigned short code,
  in optional DOMString reason
);

Parámetros

code Optional
Un valor numérico indicando el código de estado que explica porqué la conexión está siendo cerrada. Si no se especifica este parámetro, se asume un valor por defecto de 1000 (que indica un cierre normal por "transacción completa") . Ver códigos de estado en la página de CloseEvent para la lista de valores permitidos.
reason Optional
Una cadena legible explicando porqué la conexión está siendo cerrada. Esta cadena no puede ser mayor que 123 bytes de texto UTF-8 (no caracteres)

Exceptions thrown

INVALID_ACCESS_ERR
Se ha especificado un código erróneo.
SYNTAX_ERR
The reason string is too long or contains unpaired surrogates.

Note: In Gecko, this method didn't support any parameters prior to Gecko 8.0 (Firefox 8.0 / Thunderbird 8.0 / SeaMonkey 2.5).

send()

Transmite datos al servidor sobre la conexión WebSocket.

void send(
  in DOMString data
);

void send(
  in ArrayBuffer data
);

void send(
  in Blob data
); 

Parametros

data
Una cadena de texto que enviar al servidor.

Excepciones

INVALID_STATE_ERR
La conexión no está abierta en este momento.
SYNTAX_ERR
The data is a string that has unpaired surrogates.

Note: La implementación del método send() en el  motor de renderizado Gecko puede cambiar de la especificación en Gecko 6.0; Gecko devuelve un boolean indicando si la conexión esta todavía abierta (y, por extensión, que los datos son encolados o trasmitidos satisfactoriamente). Esto ha sido corregido en Gecko 8.0.

A partir de Gecko 11.0, implementa ArrayBuffer pero no tipos de datos Blob.

Example

// Crea una nueva conexión.
const socket = new WebSocket('ws://localhost:8080');

// Abre la conexión
socket.addEventListener('open', function (event) {
    socket.send('Hello Server!');
});

// Escucha por mensajes
socket.addEventListener('message', function (event) {
    console.log('Message from server', event.data);
});

Specifications

Specification Status Comment
Unknown
La definición de 'WebSocket' en esta especificación.
Unknown Initial definition

Browser compatibility

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Yes) (Yes) 4.0 (2.0)[1] (Yes) (Yes) (Yes)
Sub-protocol support ? ? 6.0 (6.0) ? ? ?
Feature Android Edge Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support ? (Yes) 7.0 (7.0)[1] ? ? (Yes)
Sub-protocol support ? ? 7.0 (7.0) ? ? ?

[1] Starting in Gecko 6.0 (Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3), the constructor is prefixed; you will need to use MozWebSocket(): var mySocket = new MozWebSocket("http://www.example.com/socketserver");

The extensions attribute was not supported in Gecko until Gecko 8.0.

Prior to Gecko 11.0 (Firefox 11.0 / Thunderbird 11.0 / SeaMonkey 2.8), outbound messages sent using the send() method were limited to 16 MB. They can now be up to 2 GB in size.

See also

Etiquetas y colaboradores del documento

Colaboradores en esta página: spachecojimenez, aranondo, dpineiden
Última actualización por: spachecojimenez,