Condividi tramite


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.

Risorse aggiuntive