Como usar WebSockets

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:

Solicitação com status 101 na ferramenta de depuração.

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.