--- title: CloseEvent slug: Web/API/CloseEvent translation_of: Web/API/CloseEvent ---

{{APIRef("Websockets API")}}

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

Construtor

{{domxref("CloseEvent.CloseEvent", "CloseEvent()")}}
Cria um CloseEvent novo.

Propriedades

Esta interface também herda as propriedades de seu objeto pai, {{domxref("Event")}}.

{{domxref("CloseEvent.code")}} {{readOnlyInline}}
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.
{{domxref("CloseEvent.reason")}} {{readOnlyInline}}
Retorna um {{domxref("DOMString")}} indicando a razão do porquê o servidor fechou uma conexão. Isto é especifico para um servidor e sub-protocolo particular.
{{domxref("CloseEvent.wasClean")}} {{readOnlyInline}}
Retorna um {{jsxref("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, {{domxref("Event")}}.

{{domxref("CloseEvent.initCloseEvent()")}} {{Non-standard_inline}} {{Obsolete_inline}}
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 {{domxref("CloseEvent.CloseEvent", "CloseEvent()")}} em vez disso.

Compatibilidade com navegadores

{{CompatibilityTable}}

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support {{CompatUnknown}} {{CompatGeckoDesktop("8.0")}}[1]
{{CompatGeckoDesktop("12.0")}}[2]
10 {{CompatUnknown}} {{CompatUnknown}}
initCloseEvent() {{Non-standard_inline}} {{CompatNo}} {{CompatGeckoDesktop("8.0")}}
{{CompatNo}} 41.0
{{CompatNo}} {{CompatNo}} {{CompatNo}}
Feature Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support {{CompatUnknown}} {{CompatGeckoMobile("8.0")}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}}
initCloseEvent() {{Non-standard_inline}} {{CompatNo}} {{CompatGeckoMobile("8.0")}}
{{CompatNo}} 41.0
{{CompatNo}} {{CompatNo}} {{CompatNo}}

[1] Anterior ao Gecko 8.0 {{geckoRelease("8.0")}}, o Gecko envia o evento WebSocket {{event("close")}}  ao ouvinte como um evento simples. O suporte para o CloseEvent foi implementado no Gecko 8.0.

[2] Anterior ao Gecko 12.0 {{geckoRelease("12.0")}}, 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