Riconnettersi a una conversazione nell'API Direct Line 3.0
Se un client usa l'interfaccia WebSocket per ricevere i messaggi ma perde la connessione, potrebbe essere necessario riconnettersi. In questo scenario, il client deve generare un nuovo URL di flusso WebSocket da usare per riconnettersi alla conversazione.
Generare un nuovo URL di flusso WebSocket
Per generare un nuovo URL di flusso WebSocket che consente di ristabilire la connessione a una conversazione esistente, eseguire questa richiesta:
GET https://directline.botframework.com/v3/directline/conversations/{conversationId}?watermark={watermark_value}
Authorization: Bearer SECRET_OR_TOKEN
In questo URI della richiesta sostituire {conversationId} con l'ID conversazione e sostituire {watermark_value} con il valore della filigrana (se il parametro watermark
è disponibile).
watermark
è facoltativo. Se il parametro watermark
viene specificato nell'URI della richiesta, la conversazione viene riprodotta dalla filigrana, garantendo che non vengano persi dei messaggi. Se il parametro watermark
viene omesso dall'URI della richiesta, vengono riprodotti solo i messaggi ricevuti dopo la richiesta di riconnessione.
I frammenti seguenti offrono un esempio della richiesta di riconnessione e della risposta.
Richiesta
GET https://directline.botframework.com/v3/directline/conversations/abc123?watermark=0000a-42
Authorization: Bearer RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0y8qbOF5xPGfiCpg4Fv0y8qqbOF5x8qbOF5xn
Risposta
Se la richiesta ha esito positivo, la risposta conterrà un ID per la conversazione, un token e un nuovo URL di flusso 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..."
}
Riconnettersi a una conversazione
Il client deve usare il nuovo URL di flusso WebSocket da riconnettere alla conversazione entro 60 secondi. Se la connessione non può essere stabilita durante questo periodo, il client deve inviare un'altra richiesta di riconnessione per generare un nuovo URL del flusso.
Se è stata attivata l'impostazione "Opzioni di autenticazione avanzate" nelle impostazioni di Direct Line, è possibile che venga visualizzato un errore 400 "MissingProperty" che indica che alla richiesta non è associato un token configurato correttamente.