Gestion des utilisateurs et des applications client connectés : routes $connect et $disconnect - Amazon API Gateway

Si nous fournissons une traduction de la version anglaise du guide, la version anglaise du guide aura préséance en cas de contradiction. La traduction sera une traduction automatique.

Gestion des utilisateurs et des applications client connectés : routes $connect et $disconnect

Route $connect

Les applications client se connectent à votre API WebSocket en envoyant une demande de mise à niveau WebSocket. Si la demande aboutit, la route $connect est exécutée pendant l'établissement de la connexion.

Étant donné que la connexion WebSocket est une connexion avec état, vous pouvez configurer l'autorisation sur la route $connect uniquement. AuthN/AuthZ sera effectué uniquement au moment de la connexion.

Tant que l'exécution de l'intégration associée à la route $connect n'est pas terminée, la demande est en attente de mise à niveau et la connexion n'est pas établie. Si la demande $connect échoue (par exemple, en raison de l'échec de AuthN/AuthZ ou de l'intégration), la connexion ne sera pas établie.

Note

Si l'autorisation échoue sur $connect, la connexion ne sera pas établie, et le client recevra une réponse 401 ou 403.

La configuration d'une intégration pour $connect est facultative. Vous devez envisager la configuration d'une intégration $connect dans les cas suivants :

  • Vous souhaitez permettre aux clients de spécifier des sous-protocoles à l'aide du champ Sec-WebSocket-Protocol. Pour obtenir un exemple de code, veuillez consulter Configuration d'une route $connect nécessitant un sous-protocole WebSocket.

  • Vous souhaitez être averti lorsque des clients se connectent et se déconnectent.

  • Vous souhaitez limiter les connexions ou contrôler qui se connecte.

  • Vous voulez que votre serveur principal renvoie des messages aux clients à l'aide d'une URL de rappel.

  • Vous souhaitez stocker chaque ID de connexion et d'autres informations dans une base de données (par exemple, Amazon DynamoDB).

Route $disconnect

La route $disconnect est exécutée une fois que la connexion est fermée.

La connexion peut être fermée par le serveur ou par le client. Comme la connexion est déjà fermée au moment de son exécution, $disconnect est un événement conditionnel. API Gateway s'efforce de livrer l'événement $disconnect à votre intégration, mais ne peut pas garantir la livraison.

Le serveur principal peut lancer la déconnexion à l'aide de l'API @connections. Pour plus d'informations, consultez Utilisation des commandes @connections dans votre service backend.