WebSocket Proxy

O módulo WebSocket Proxy para Edge Application permite que você estabeleça o protocolo de comunicação WebSocket entre sua origem e seus usuários sob a arquitetura de proxy reverso. Esse tipo de protocolo consiste em uma única conexão TCP bidirecional que permite que os dados sejam trocados em tempo real através de um único handshake sem a necessidade de reiniciar a conexão.

Os WebSockets são projetados para minimizar a latência e aumentar a eficiência, e são adequados para aplicações que trocam dados em tempo real, como jogos online, plataformas de bate-papo, notificações e serviços de transmissão ao vivo. Consulte a especificação do protocolo WebSocket para obter mais informações.

Devido à sua natureza de conexão aberta bidirecional, WebSocket Proxy é incompatível com o uso dos módulos Edge Functions e Image Processor. Conexões WebSocket também não funcionarão em conjunto do Edge Cache ou do Tiered Cache.

Implementação

EscopoRecurso
Primeiros passos de Edge ApplicationPrimeiros passos

Requisitos

Seu cliente e servidor devem suportar a conexão WebSocket nativamente para que o protocolo seja implementado em suas edge applications. Do lado do cliente, a maioria dos navegadores inclui suporte nativo a WebSocket. Veja a lista completa de browsers com suporte ao WebSocket.

Cabeçalhos de upgrade

A aplicação deverá injetar os cabeçalhos HTTP Upgrade: websocket e Connection: upgrade na origem para que a conexão seja estabelecida com sucesso. Caso os cabeçalhos Connection e Upgrade sejam enviados pelo cliente com valores diferentes dos especificados acima ou um deles não esteja presente, o upgrade de conexão no request de usuários para a origem não será efetuado.


Tratamento de erros

Por padrão, uma edge application que tenha o módulo WebSocket Proxy habilitado irá considerar que qualquer requisição recebida com os cabeçalhos Upgrade: websocket e Connection: upgrade é passível de conexão websocket e irá encaminhá-los para origem. É recomendado que a própria aplicação controle o envio dos cabeçalhos nos casos onde o protocolo deverá ser usado.

A conexão WebSocket válida retornará o status 101 Switching Protocols. Caso este não seja o status recebido, mesmo que seja da família de status de sucesso 2xx ou 3xx, é provável que a requisição do cliente, a edge application ou o servidor de origem não tenham completado a conexão Websocket. Nesse caso, você deverá revisar os requisitos para o upgrade da conexão e fazer os ajustes necessários.


Limites

Estes são os limites default:

EscopoLimite
Tempo máximo de conexão¹15 minutos

¹ A Azion recicla conexões keepalive nos seus servidores aproximadamente a cada 15 minutos. Portanto, conexões WebSocket ativas poderão ser encerradas se ultrapassarem esse intervalo. Neste caso, sua aplicação deverá tratar esses cenários e restabelecer a conexão sempre que necessário.


Contribuidores