--- title: WebSocket slug: Web/API/WebSocket translation_of: Web/API/WebSocket ---
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_inline}}El constructor puede levantar excepciones:
SECURITY_ERR
void close(in optional unsigned long code, in optional DOMString reason); |
void send(in DOMString data); |
Atributo | Tipo | Descricción |
binaryType |
{{DOMXref("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 {{domxref("Blob")}} o bien "arraybuffer" {{jsxref("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 {{manch("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 {{manch("send")}}, continuará acumulandose. Solo de lectura. |
extensions |
{{DOMXref("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 |
{{domxref("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 |
onerror |
{{domxref("EventListener")}} |
Un monitor de eventos que es llamado cuando un error ocurre. Esto es un evento simple llamado "error" |
onmessage |
{{domxref("EventListener")}} |
Un monitor de eventos que es llamado cuando un mensaje es recibido desde un servidor. El monitor recibe un objeto |
onopen |
{{domxref("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 |
{{DOMXref("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 {{anch("Ready state constants")}}. Solo lectura. |
url |
{{DOMXref("DOMString")}} | La URL como la resuelve el constructor. Esto siempre es una URL absoluta. Solo lectura. |
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. |
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 );
code
{{optional_inline}}reason
{{optional_inline}}INVALID_ACCESS_ERR
SYNTAX_ERR
reason
cadena es demasiado larga o continene caracteres no validos.Note: En Gecko, este métido no soporta ningun parámetro antes de Gecko 8.0 {{geckoRelease("8.0")}}.
Transmite datos al servidor sobre la conexión WebSocket.
void send( in DOMString data ); void send( in ArrayBuffer data ); void send( in Blob data );
data
INVALID_STATE_ERR
SYNTAX_ERR
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 {{jsxref("ArrayBuffer")}} pero no tipos de datos {{domxref("Blob")}}.
// 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); });
Specification | Status | Comment |
---|---|---|
{{SpecName("Websockets", "#the-websocket-interface", "WebSocket")}} | {{Spec2("Websockets")}} | Definición inicial |
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic support | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatGeckoDesktop("2.0")}}[1] | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
Sub-protocol support | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatGeckoDesktop("6.0")}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
Feature | Android | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | {{CompatUnknown}} | {{CompatVersionUnknown}} | {{CompatGeckoMobile("7.0")}}[1] | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatVersionUnknown}} |
Sub-protocol support | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatGeckoMobile("7.0")}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
[1] Starting in Gecko 6.0 {{geckoRelease("6.0")}}, 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 {{geckoRelease("11.0")}}, outbound messages sent using the send() method were limited to 16 MB. They can now be up to 2 GB in size.