WebSocket Proxy
Consulte o que WebSocket Proxy exige em uma aplicação, os headers de upgrade, os erros que ele retorna e os seus limites de conexão.
WebSocket, especificado na RFC 6455, é um protocolo que mantém uma conexão TCP bidirecional aberta entre um cliente e um servidor, então os dois lados trocam dados em tempo real depois de um único handshake, sem reiniciar a conexão. WebSocket Proxy transporta essa conexão entre os seus usuários e a sua origem por meio de uma aplicação, que funciona como um proxy reverso. Use-o para aplicações em tempo real, como jogos online, chat, notificações e streaming ao vivo. WebSocket Proxy serve quando o servidor WebSocket é a sua origem, porque a aplicação apenas transporta a conexão até ela. Quando uma função deve agir ela mesma como servidor ou cliente WebSocket, use a WebSocket API, que trata um upgrade do lado do servidor com upgradeWebSocket().
Disponibilidade
WebSocket Proxy está disponível para clientes com Business, Enterprise ou Mission-Critical Support, e para clientes com um contrato Reserved Capacity ou Saving Plan. Para solicitar acesso a WebSocket Proxy, entre em contato com o Suporte Técnico.
Suporte no cliente e na origem
Uma conexão WebSocket por meio de uma aplicação precisa de suporte nativo a WebSocket nas duas pontas: o cliente que abre a conexão e o servidor na origem. A maioria dos navegadores oferece suporte nativo a WebSocket. Para a lista de navegadores com suporte nativo, consulte Can I use.
Headers de upgrade
Uma aplicação com WebSocket Proxy habilitado lê dois headers de requisição para decidir se uma requisição abre uma conexão WebSocket. Por padrão, ela trata toda requisição que carrega os dois headers, com os valores desta tabela, como uma conexão WebSocket e faz o proxy dela até a origem.
| Header | Valor |
|---|---|
Upgrade | websocket |
Connection | upgrade |
Quando o cliente envia um dos headers com outro valor, ou omite um deles, a aplicação não realiza o upgrade em direção à origem.
As regras de um firewall podem inspecionar uma requisição WebSocket antes que o upgrade seja concluído.
Erros
Uma conexão WebSocket por meio de uma aplicação se completa com 101 Switching Protocols. Qualquer outro status significa que o upgrade não foi concluído, mesmo um status das famílias de sucesso 2xx ou 3xx:
| Status | Causa | O que fazer |
|---|---|---|
Qualquer status diferente de 101 | O cliente, a aplicação ou a origem não completou a conexão WebSocket | Verifique se o cliente e a origem oferecem suporte nativo a WebSocket, e se a requisição carrega os dois headers de upgrade com os seus valores |
Limites
A Azion recicla as conexões keepalive nos seus servidores aproximadamente a cada 15 minutos, e pode encerrar uma conexão WebSocket ativa que fique aberta além desse tempo. A sua aplicação então precisa detectar a conexão encerrada e restabelecê-la. Para o tempo máximo de uma conexão WebSocket, e para saber como solicitar um limite maior para o seu plano, consulte Limites de Applications.