--- title: WebSocket slug: Web/API/WebSocket tags: - API - WebSocket - WebSockets translation_of: Web/API/WebSocket ---
O objeto WebSocket provê uma API para criação e gerenciamento de uma conexão WebSocket com um servidor, bem como o envio e recebimento de dados através dessa conexão.
O construtor do WebSocket aceita um parâmetro obrigatório e um opcional:
WebSocket WebSocket( in DOMString url, in optional DOMString protocols ); WebSocket WebSocket( in DOMString url, in optional DOMString[] protocols );
urlprotocols {{optional_inline}}O construtor pode lançar exceções:
SECURITY_ERRvoid close(É opcional: unsigned long code, É opcional: DOMString reason); |
void send(in DOMString data); |
| Attributo | Tipo | Descrição |
binaryType |
{{DOMXref("DOMString")}} |
Uma string indica o tipo de dado binário que está sendo transmitido pela conexão. Este deve ser tanto "blob" se o objeto DOM {{domxref("Blob")}} estiver sendo usado ou "arraybuffer" se os objetos {{jsxref("ArrayBuffer")}} estiver sendo usada |
bufferedAmount |
unsigned long |
O número de bites de dados que tem sid consultado usando chamadas para {{manch("send")}} mas não ainda para a rede.Estes valor reseta para zero uma vez que todos os dados tem sido mandados.Este valor não reseta para zero quando a conexão está fechada, se você continuar chamando {{manch("send")}}, isto continuará escalando. Leitura online |
extensions |
{{DOMXref("DOMString")}} | As extensões selecionadas pelo servidor. Este é atualmente apenas a string vazia ou uma lista de extensões negociadas pela conexão. |
onclose |
{{domxref("EventListener")}} | Um event listener para ser chamado quando o readyState da conexão do WebSocket mudar para CLOSED . O listener recebe um CloseEvent "close". |
onerror |
{{domxref("EventListener")}} | Um event listener para ser chamado quando ocorrer um erro. Este é um evento simples chamado "erro". |
onmessage |
{{domxref("EventListener")}} | Um event listener para ser chamado quando uma mensagem é recebida do servidor. O listener recebe um MessageEvent "message". |
onopen |
{{domxref("EventListener")}} | Um event listener para ser chamado quando o readyState da conexão do WebSocket mudar para OPEN , isso indica que a conexão está pronta para enviar e receber dados. O evento é simples, com o nome "open". |
protocol |
{{DOMXref("DOMString")}} | Uma sequência de caracteres que indica o nome do sub-protocolo selecionado pelo servidor, este será um dos parâmetros especificados no protocolo ao criar o objeto WebSocket. |
readyState |
unsigned short |
O estado atual da conexão, este é um dos {{anch("Ready state constants")}}. Apenas leitura. |
url |
{{DOMXref("DOMString")}} | O URL resolvido pelo construtor. Este é sempre um URL absoluto. Apenas leitura. |
Essas constantes são usadas pelo atributo readyState para descrever o estado da conexão do WebSocket.
| Constante | Valor | Descrição |
CONNECTING |
0 |
A conexão ainda não está aberta. |
OPEN |
1 |
A conexão está aberta e pronta para se comunicar. |
CLOSING |
2 |
A conexão está em processo de fechamento. |
CLOSED |
3 |
A conexão está fechada ou não foi possível abrir. |
Fecha a conexão do WebSocket ou a tentativa de conexão, se houver. Se a conexão já for CLOSED , este método não faz nada.
void close( É opcional: unsigned short code, É opcional: DOMString reason );
code {{optional_inline}}CloseEvent página de valores permitidos.reason {{optional_inline}}INVALID_ACCESS_ERRcódigoinválido.SYNTAX_ERR reason é muito longa ou contém substitutos não comparados.Note: No Gecko, este método não suporta nenhum parâmetro antes do Gecko 8.0 {{geckoRelease("8.0")}}.
send()Transmite dados para o servidor através da conexão WebSocket.
void send(
in DOMString data
);
void send(
in ArrayBuffer data
);
void send(
in Blob data
);
ParametrosdataUma sequência de texto para enviar para o servidor.Exceções lançadasINVALID_STATE_ERRA conexão não está atualmente OPEN .SYNTAX_ERROs dados são uma string que tem substituto não comparado.Nota: A implementação do método send () de Gecko difere um pouco da especificação em {{Gecko("6.0")}}. Gecko retorna um boolean indicando se a conexão ainda está aberta (por extensão, ou os dados estão em fila ou transmitidos com sucesso). Isso é corrigido em {{Gecko("8.0")}}.
A partir de {{Gecko("11.0")}}, o suporte para {{jsxref ("ArrayBuffer")}} está implementado, mas não {{domxref("Blob")}} tipos de dados.
EspecificaçõesEspecificações |
Status |
Comentário |
|---|---|---|
{{SpecName("Websockets", "#the-websocket-interface", "WebSocket")}} |
{{Spec2("Websockets")}} |
Definição inicial |
Navegador Compatível{{CompatibilityTable}}Características |
Chrome |
Firefox (Gecko) |
Internet Explorer |
Opera |
Safari |
|---|---|---|---|---|---|
Suporte básico |
{{CompatVersionUnknown}} |
{{CompatGeckoDesktop("2.0")}}[1] |
{{CompatVersionUnknown}} |
{{CompatVersionUnknown}} |
{{CompatUnknown}} |
Suporte sub-protocolo |
{{CompatUnknown}} |
{{CompatGeckoDesktop("6.0")}} |
{{CompatUnknown}} |
{{CompatUnknown}} |
{{CompatUnknown}} |
Características |
Android |
Firefox Mobile (Gecko) |
IE Mobile |
Opera Mobile |
Safari Mobile |
|---|---|---|---|---|---|
Suporte básico |
{{CompatUnknown}} |
{{CompatGeckoMobile("7.0")}}[1] |
{{CompatUnknown}} |
{{CompatUnknown}} |
{{CompatUnknown}} |
Suporte sub-protocolo |
{{CompatUnknown}} |
{{CompatGeckoMobile("7.0")}} |
{{CompatUnknown}} |
{{CompatUnknown}} |
{{CompatUnknown}} |
[1] Iniciado no Gecko 6.0 {{geckoRelease("6.0")}}, o construtor está prefixado. Você precisará usar MozWebSocket() : var mySocket = new MozWebSocket("http://www.example.com/socketserver");
As extensões atribuídas não eram suportadas no Gecko até Gecko 8.0.
Antes do Gecko 11.0 {{geckoRelease("11.0")}}, as mensagens de saída enviadas usavam o método send(), eram limitadas a 16MB. Agora elas podem ter até 2GB de tamanho.
Veja também