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
Escopo | Recurso |
---|---|
Primeiros passos de Edge Application | Primeiros 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:
Escopo | Limite |
---|---|
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.