Se reconnecter à une conversation dans Direct Line API 3.0

Si un client utilise l’interface WebSocket pour recevoir des messages mais perd sa connexion, il peut avoir besoin de se reconnecter. Dans ce cas, le client doit générer une nouvelle URL de flux WebSocket, qu’il peut utiliser pour se reconnecter à la conversation.

Générer une nouvelle URL de flux WebSocket

Pour générer une nouvelle URL de flux WebSocket qui peut être utilisée pour se reconnecter à une conversation existante, exécutez cette requête :

GET https://directline.botframework.com/v3/directline/conversations/{conversationId}?watermark={watermark_value}
Authorization: Bearer SECRET_OR_TOKEN

Dans cet URI de requête, remplacez {conversationId} par l’ID de la conversation, et remplacez {watermark_value} par la valeur du filigrane (si le paramètre watermark est disponible). Le paramètre watermark est facultatif. Si le paramètre watermark est spécifié dans l’URI de requête, la conversation reprend à partir de la limite, ce qui garantit qu’aucun message n’est perdu. Si le paramètre watermark est omis de l’URI de requête, seuls les messages reçus après la requête de reconnexion sont repris.

Les extraits de code suivants illustrent la requête de reconnexion et la réponse.

Requête

GET https://directline.botframework.com/v3/directline/conversations/abc123?watermark=0000a-42
Authorization: Bearer RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0y8qbOF5xPGfiCpg4Fv0y8qqbOF5x8qbOF5xn

response

Si la requête aboutit, la réponse contient un ID pour la conversation, un jeton et une nouvelle URL de flux WebSocket.

HTTP/1.1 200 OK
[other headers]
{
  "conversationId": "abc123",
  "token": "RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0y8qbOF5xPGfiCpg4Fv0y8qqbOF5x8qbOF5xn",
  "streamUrl": "https://directline.botframework.com/v3/directline/conversations/abc123/stream?watermark=000a-4&t=RCurR_XV9ZA.cwA..."
}

Se reconnecter à la conversation

Le client doit utiliser la nouvelle URL de flux WebSocket pour se reconnecter à la conversation sous 60 secondes. Si la connexion ne peut pas être établie pendant ce temps, le client doit émettre une autre demande de reconnexion pour générer une nouvelle URL de flux.

Si les options d’authentification améliorées sont activées dans les paramètres Direct Line, vous pouvez obtenir l’erreur 400 « MissingProperty » si le jeton joint à la requête n’a pas été configuré correctement.

Ressources supplémentaires