Esta página se aplica à Apigee e à Apigee híbrida.
Confira a documentação da Apigee Edge.
Neste tópico, discutimos como usar WebSockets com a Apigee e a Apigee híbrida.
Introdução
Há muitas situações em que as interações da Web precisam acontecer em tempo real, como jogos, comunicações, transações financeiras e outras atividades de alta capacidade.
O WebSocket é um protocolo que fornece um canal de comunicações full-duplex entre um cliente da Web e um servidor da Web em uma única conexão TCP. O protocolo WebSocket usa o protocolo HTTP para estabelecer a conexão entre o cliente e o servidor. Uma vez estabelecido, o cliente e o servidor usam o protocolo WebSocket para enviar e receber dados.
A especificação do WebSockets e o protocolo são mantidos pelo W3C.
Suporte para WebSockets na Apigee
Na Apigee e na Apigee híbrida, os grupos de ambiente fornecem roteamento para ambientes e definem os
nomes de host em que os proxies de API são expostos. Os grupos de ambiente são compatíveis com os protocolos HTTP e WS
de forma nativa. Você não precisa criar um grupo de ambiente especial ou qualquer configuração especial para usar WebSockets. Em vez disso, cabe
ao cliente solicitar
um upgrade de protocolo de HTTP para WS, incluindo o cabeçalho de solicitação Upgrade
. Uma solicitação de upgrade feita
para um endpoint de proxy da API retorna uma resposta 101 Switching Protocols
. Outras solicitações
e respostas são feitas bidirecionalmente na conexão WebSockets aberta, até que ela seja fechada.
Suporte a políticas
Todas as políticas vão funcionar em um proxy de soquete da Web até que o handshake seja concluído
(por exemplo, até que a resposta HTTP 101
seja retornada ao cliente),
Depois disso, nenhuma política será executada, mas os tokens OAuth validados antes do
handshake continuam sendo honrados e a conexão cai se o token expirar ou
for revogado.
Como revogar a conexão
A conexão de WebSockets é encerrada quando:
- O endpoint do proxy recebe uma solicitação sem uma chave de API ou um token OAuth.
- O endpoint do proxy recebe uma solicitação com uma chave de API expirada ou inválida, ou um token OAuth.
- A conexão dos WebSockets expira.
Como usar o Trace e o Analytics
Na ferramenta de depuração, para cada conexão de WebSockets, você verá uma solicitação com um Status 101, conforme mostrado na captura de tela a seguir:
No painel de análise da Apigee, você verá o cálculo do tráfego para cada sessão de WebSockets. O tráfego de retorno que ocorre durante a sessão não é mostrado no painel.
Exemplo de aplicativo WebSockets
Para saber mais, consulte um aplicativo funcional websocket-sample no GitHub. O exemplo demonstra como chamar um proxy de API por meio de uma conexão WebSockets. O proxy chama um aplicativo de destino de back-end simples que é implantado no cluster do Kubernetes.