--- 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 );
url
protocols
{{optional_inline}}O construtor pode lançar exceções:
SECURITY_ERR
void 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_ERR
código
invá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
);
Parametros
data
Uma sequência de texto para enviar para o servidor.
Exceções lançadas
INVALID_STATE_ERR
A conexão não está atualmente OPEN
.
SYNTAX_ERR
Os 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ções
Especificaçõ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