Share via


Empfangen von Nachrichten vom Bot in Direct Line API 1.1

Wichtig

In diesem Artikel wird beschrieben, wie Nachrichten vom Bot mithilfe von Direct Line API 1.1 empfangen werden. Wenn Sie eine neue Verbindung zwischen Ihrer Clientanwendung und Ihrem Bot erstellen, verwenden Sie stattdessen Direct Line API 3.0.

Bei Verwendung des Direct Line 1.1-Protokolls müssen Clients eine HTTP GET-Schnittstelle abfragen, um Nachrichten zu empfangen.

Abrufen von Nachrichten mit HTTP GET

Geben Sie zum Abrufen von Nachrichten für eine bestimmte Konversation eine GET-Anforderung an den api/conversations/{conversationId}/messages-Endpunkt aus, wobei Sie optional den watermark-Parameter festlegen, um die neueste vom Client angezeigte Nachricht anzugeben. Ein aktualisierter watermark-Wert wird in der JSON-Antwort zurückgegeben, selbst wenn keine Nachrichten enthalten sind.

Die folgenden Codeausschnitte enthalten ein Beispiel der Get Messages-Anforderung und -Antwort. Die Get Messages-Antwort enthält watermark als Eigenschaft von MessageSet. Clients sollten durch die verfügbaren Nachrichten blättern, indem der watermark-Wert erhöht wird, bis keine Nachrichten mehr zurückgegeben werden.

Anforderung

GET https://directline.botframework.com/api/conversations/abc123/messages?watermark=0001a-94
Authorization: Bearer RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0

Antwort

HTTP/1.1 200 OK
[other headers]
{
    "messages": [
        {
            "conversation": "abc123",
            "id": "abc123|0000",
            "text": "hello",
            "from": "user1"
        }, 
        {
            "conversation": "abc123",
            "id": "abc123|0001",
            "text": "Nice to see you, user1!",
            "from": "bot1"
        }
    ],
    "watermark": "0001a-95"
}

Überlegungen zum Timing

Direct Line ist zwar ein mehrteiliges Protokoll mit möglichen Lücken im Timing, das Protokoll und der Dienst wurden jedoch entwickelt, um das Erstellen eines zuverlässigen-Clients zu erleichtern. Die watermark-Eigenschaft, die in der Get Messages-Antwort gesendet wird, ist zuverlässig. Ein Client verpasst keine Nachrichten, solange es das Wasserzeichen verbatim wiedergibt.

Clients sollten ein Abrufintervall wählen, das ihrer vorgesehenen Verwendung entspricht.

  • Dienst-zu-Dienst-Anwendungen verwenden häufig ein Abrufintervall von 5 oder 10 Sekunden.

  • Anwendungen mit Clientkontakt verwenden oft ein Pollingintervall von 1s und geben etwa 300ms nach jeder Nachricht, die der Client sendet, eine zusätzliche Anforderung aus (um die Antwort eines Bots schnell abzurufen). Diese Verzögerung von 300ms sollte basierend auf der Geschwindigkeit und Übertragungszeit des Bots angepasst werden.

Zusätzliche Ressourcen