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
- Concepts clés
- Authentification
- Receive activities via WebSocket stream (Recevoir des activités par le biais d’un flux WebSocket)