Esta página aplica-se ao Apigee e ao Apigee Hybrid.
Veja a documentação do
Apigee Edge.
Este tópico aborda como usar WebSockets com o Apigee e o Apigee híbrido.
Introdução
Existem muitas situações em que as interações na Web têm de ocorrer em tempo real, como jogos, comunicações, transações financeiras e outras atividades de elevado débito.
O WebSocket é um protocolo que fornece um canal de comunicações full-duplex entre um cliente Web e um servidor Web através de uma única ligação TCP. O protocolo WebSocket usa o protocolo HTTP para estabelecer a ligação entre o cliente e o servidor. Uma vez estabelecida, o cliente e o servidor usam o protocolo WebSocket para enviar e receber dados.
A especificação e o protocolo WebSockets são mantidos pelo W3C.
Suporte para WebSockets no Apigee
No Apigee e no Apigee Hybrid, os grupos de ambientes fornecem encaminhamento para ambientes e definem os nomes de anfitrião nos quais os proxies de API são expostos. Os grupos de ambientes suportam nativamente os protocolos HTTP e WS. Não tem de criar um grupo de ambientes especial nem qualquer configuração especial para usar WebSockets. Em vez disso, cabe ao cliente pedir uma atualização do protocolo de HTTP para WS, incluindo o cabeçalho do pedido Upgrade
. Um pedido de atualização feito a um ponto final de proxy de API devolve uma resposta 101 Switching Protocols
. Os pedidos e as respostas adicionais são feitos bidirecionalmente na ligação WebSocket aberta até ser fechada.
Apoio técnico de políticas
Todas as políticas funcionam num proxy de socket da Web até que a negociação seja concluída
(ou seja, até que a resposta HTTP 101
seja devolvida ao cliente).
Depois disso, nenhuma política é executada, mas os tokens OAuth validados antes da
negociação continuam a ser respeitados, e a ligação é interrompida se o token expirar ou
for revogado.
Revogar a associação
A ligação WebSockets é fechada quando:
- O ponto final de proxy recebe um pedido sem uma chave da API ou um token OAuth.
- O ponto final de proxy recebe um pedido com uma chave da API ou um token OAuth expirado ou inválido.
- A ligação WebSockets excede o tempo limite.
Usar rastreio e estatísticas
Na ferramenta de depuração, para cada ligação WebSockets, é apresentado um pedido com o estado 101, conforme mostrado na captura de ecrã seguinte:
No painel de controlo de estatísticas do Apigee, vê o tráfego contabilizado para cada sessão do WebSockets. O tráfego de vaivém que ocorre durante a sessão não é apresentado no painel de controlo.
Aplicação WebSockets de exemplo
Para saber mais, pode consultar uma aplicação websocket-sample funcional no GitHub. O exemplo demonstra como chamar um proxy de API através de uma ligação WebSockets. O proxy chama uma aplicação de destino de back-end simples implementada no seu cluster do Kubernetes.