Erneute Verbindung zu einer Unterhaltung in Direct Line API 3.0

Wenn ein Client die WebSocket-Schnittstelle verwendet, um Nachrichten zu empfangen, aber die Verbindung getrennt wird, möchte dieser ggf. die Verbindung wiederherstellen. In diesem Szenario muss der Client eine neue WebSocket-Stream-URL generieren, die er verwenden kann, um erneut eine Verbindung mit der Konversation herzustellen.

Generieren einer neuen WebSocket-Stream-URL

Senden Sie die folgende Anforderung, um eine neue WebSocket-Stream-URL zu erstellen, die verwendet werden kann, um erneut eine Verbindung zu der bereits vorhandenen Konversation herzustellen:

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

Ersetzen Sie in diesem Anforderungs-URI {conversationId} durch die Konversations-ID und {watermark_value} durch den Wasserzeichenwert (wenn der Parameter watermark verfügbar ist). Das watermark ist optional. Wenn der watermark-Parameter im Anforderungs-URI angegeben ist, wird die Konversation ab dem Wasserzeichen wiederholt. Dadurch wird garantiert, dass keine Nachrichten verloren gehen. Wenn der watermark-Parameter nicht im Anforderungs-URI angegeben ist, werden nur die Nachrichten wiederholt, die nach dem Senden der Anforderung zum erneuten Herstellen einer Verbindung empfangen wurden.

Die folgenden Codeausschnitte enthalten ein Beispiel der Reconnect-Anforderung und -Antwort.

Anforderung

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

Antwort

Wenn die Anforderung erfolgreich gesendet wird, enthält die Antwort eine ID zu der Konversation, ein Token und eine neue WebSocket-Stream-URL.

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..."
}

Erneutes Herstellen einer Verbindung mit einer Konversation

Der Client muss die neue WebSocket-Stream-URL verwenden, um innerhalb von 60 Sekunden erneut eine Verbindung zu der Konversation herstellen zu können. Wenn die Verbindung während dieses Zeitraums nicht hergestellt werden kann, muss der Client eine weitere Reconnect-Anforderung ausgeben, um eine neue Stream-URL zu generieren.

Wenn Sie in den Direct Line-Einstellungen die Option für die erweiterte Authentifizierung aktiviert haben, tritt möglicherweise ein MissingProperty-Fehler (Code: 400) auf, wenn an die Anforderung kein ordnungsgemäß konfiguriertes Token angefügt ist.

Zusätzliche Ressourcen