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 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 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 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()
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 nos 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!
Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support ? 8.0 (8.0)[1]
12.0 (12.0)[2]
10 ? ?
initCloseEvent() 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() 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