Utiliser WebSockets

Cette rubrique explique comment utiliser WebSockets avec Apigee hybrid.

Présentation

Dans de nombreuses situations, comme les jeux, les communications, les transactions financières et d'autres activités nécessitant un haut débit, les interactions Web doivent avoir lieu en temps réel.

WebSocket est un protocole qui fournit un canal de communication en duplex intégral entre un client Web et un serveur Web via une connexion TCP unique. Le protocole WebSocket utilise le protocole HTTP pour établir la connexion entre le client et le serveur. Une fois la connexion établie, le client et le serveur utilisent le protocole WebSocket pour envoyer et recevoir des données.

Le protocole et la spécification WebSockets sont gérés par le W3C.

Compatibilité avec WebSockets dans Apigee Hybrid

Dans Apigee hybrid, les hôtes virtuels définissent le ou les domaines sur lesquels les proxys d'API sont exposés. Les hôtes virtuels hybrides sont compatibles de manière native avec les protocoles HTTP et WS. Vous n'avez pas besoin de créer un hôte virtuel spécial ni aucune configuration spéciale pour utiliser WebSockets. Il appartient plutôt au client de demander une mise à niveau de protocole de HTTP vers WS en incluant l'en-tête de requête Upgrade. Une requête de mise à niveau envoyée à un point de terminaison de proxy d'API renvoie une réponse 101 Switching Protocols. D'autres requêtes et réponses sont effectuées de manière bidirectionnelle sur la connexion WebSockets ouverte, jusqu'à ce qu'elle soit fermée.

Compatibilité des règles

Avec une connexion WebSockets, vous ne pouvez utiliser que les règles "Vérifier la clé API" et "OAuthV2" dans votre proxy d'API. Toutes les autres règles sont ignorées.

Révoquer la connexion

La connexion WebSockets est fermée dans les cas suivants :

  • Le point de terminaison du proxy reçoit une requête sans clé API ou jeton OAuth.
  • Le point de terminaison du proxy reçoit une requête avec une clé API ou un jeton OAuth expiré ou non valide.
  • La connexion WebSockets expire.

Utiliser les données de trace et d'analyse

Dans l'outil Trace, pour chaque connexion WebSockets, une requête apparaît avec un État 101, comme illustré dans la capture d'écran suivante :

Dans le tableau de bord d'analyse hybride, le trafic est comptabilisé pour chaque session WebSockets. Le trafic aller et retour qui se produit pendant la session n'apparaît pas dans le tableau de bord.

Exemple d'application WebSockets

Pour en savoir plus, vous pouvez vous référer à une application websocket-sample fonctionnelle sur GitHub. L'exemple montre comment appeler un proxy d'API via une connexion WebSockets. Le proxy appelle une application backend cible simple qui est déployée dans votre cluster Kubernetes.