CloseEvent

Um CloseEvent é enviado aos clientes que usam WebSockets quando a conexão está fechada (closed). Ele é enviado ao ouvinte(listener) pelo atributo onclose do objeto WebSocket.

Construtor

CloseEvent()
Cria um CloseEvent novo.

Propriedades

Esta interface também herda as propriedades de seu objeto pai, Event.

CloseEvent.code (en-US) Somente leitura
Retorna um valor unsigned short contendo o código de encerramento enviado pelo servidor. Os seguintes valores são status de códigos permitidos. As definições seguintes são originadas da página da IANA [Ref]. Observe que os códigos 1xxx são exclusivamente Websockets internos e não para os mesmos propósitos dos dados enviados (como quando o protocolo da camada de aplicação é invalido). Os únicos códigos que permitem especificação no Firefox são o 1000 e do 3000 ao 4999 [Source, Bug].
Código de Status Nome Descrição
0999 Reservado e não utilizado.
1000 CLOSE_NORMAL Encerramento normal. A conexão foi completada com sucesso sempre que o propósito para o qual ela foi criada tenha sido atingida.
1001 CLOSE_GOING_AWAY O "endpoint" desapareceu, por causa de uma falha no servidor ou por que o navegador navegou para fora da página que abriu a conexão.
1002 CLOSE_PROTOCOL_ERROR O "endpoint" finalizou a conexão devido a um erro de protocolo.
1003 CLOSE_UNSUPPORTED A conexão está sendo finalizada por causa de o dado do "endpoint" recebido ser de um tipo que não pode ser aceito (por exemplo, um "text-only endpoint" recebido como dado binário).
1004 Reservado. Um significado pode ser definido futuramente.
1005 CLOSE_NO_STATUS Reservado.  Indica que um código "no status" foi fornecido mesmo que qualquer outro código seja esperado.
1006 CLOSE_ABNORMAL Reservado. Usado para indicar que uma conexão foi fechada anormalmente (isto é, sem o "close frame" ter sido enviado) quando um "status code" é esperado.
1007 Unsupported Data O "endpoint" está finalizando a conexão por causa da mensagem ter sido recebida com dados inconsistentes (por exemplo, dados que não estejam no padrão UTF-8, dentro de uma mensagem de texto).
1008 Policy Violation O "endpoint" está finalizando a conexão por causa dele ter recebido uma mensagem que viola sua política. Este é um código de status genérico, usado quando o código 1003 e o código 1009 não sejam adequados.
1009 CLOSE_TOO_LARGE O "endpoint" está finalizando a conexão por causa de que o "data frame" recebido é muito grande.
1010 Missing Extension O cliente está fechando a conexão por causa de que navegador espera o servidor negociar uma ou mais extensões esperadas, o servidor não responde corretamente.
1011 Internal Error O servidor está finalizando uma conexão por causa de que ele encontrou uma condição inesperada que o impediu de cumprir a solicitação.
1012 Service Restart

O servidor está finalizando uma conexão por que ele está em processo de "restar". [Ref]

1013 Try Again Later

O servidor está finalizando a conexão devido a uma condição temporária, por exemplo, ele estar sobrecarregado e estar rejeitando alguns dos seus clientes. [Ref]

1014 Reservado para o futuro uso de um padrão WebSocket.
1015 TLS Handshake

Reservado. Indica que a conexão foi fechada devido a uma falha para executar um " TLS handshake" (por exemplo, o certificado do servidor não pode ser verificado).

10161999 Reservado para o futuro uso de um padrão WebSocket.
20002999 Reservado para uso de "WebSocket extensions".
30003999

Disponível para uso de bibliotecas e frameworks. Não pode ser usado para aplicações. Disponível para registro em "IANA via first-come, first-serve".

40004999 Disponível para uso em aplicações.
CloseEvent.reason (en-US) Somente leitura
Retorna um DOMString indicando a razão do porquê o servidor fechou uma conexão. Isto é especifico para um servidor e sub-protocolo particular.
CloseEvent.wasClean (en-US) Somente leitura
Retorna um Boolean indicando se a conexão está ou não está claramente fechada.

Métodos

Esta interface também herda as propriedades de seu objeto pai, Event.

CloseEvent.initCloseEvent() (en-US) Non-Standard This is an obsolete API and is no longer guaranteed to work.
Inicializa o valor de um CloseEvent criado. Se o evento já tenha sido enviado, este método não realiza nada.  Não use este método mais, use o construtor CloseEvent() em vez disso.

Compatibilidade com navegadores

Estamos convertendo nossos dados de compatibilidade para o formato JSON. Esta tabela de compatibilidade ainda usa o formato antigo, pois ainda não convertemos os dados que ela contém. Descubra como você pode ajudar! (en-US)

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support ? 8.0 (8.0)[1]
12.0 (12.0)[2]
10 ? ?
initCloseEvent() Non-Standard Não suportado 8.0 (8.0)
Não suportado 41.0
Não suportado Não suportado Não suportado
Feature Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support ? 8.0 (8.0) ? ? ?
initCloseEvent() Non-Standard Não suportado 8.0 (8.0)
Não suportado 41.0
Não suportado Não suportado Não suportado

[1] Anterior ao Gecko 8.0 (Firefox 8.0 / Thunderbird 8.0 / SeaMonkey 2.5), o Gecko envia o evento WebSocket close  ao ouvinte como um evento simples. O suporte para o CloseEvent foi implementado no Gecko 8.0.

[2] Anterior ao Gecko 12.0 (Firefox 12.0 / Thunderbird 12.0 / SeaMonkey 2.9), o Gecko reportava o código de encerramento CLOSE_NORMAL quando o canal se fechava devido a um erro inesperado, ou se a condição de erro não era coberta pela especificação. Agora CLOSE_GOING_AWAY é reportado em seu lugar.

Veja também