共用方式為


重新連線至 Direct Line API 3.0 中的交談

如果用戶端使用 WebSocket 介面來接收訊息,但卻失去連線,此時可能需要重新連線。 在此情況下,用戶端必須產生新的 WebSocket 串流 URL,用它來重新連線到對話。

產生新的 WebSocket 串流 URL

若要產生新的 WebSocket 串流 URL,以用來重新連線到現有對話,請發出此要求:

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

在此要求 URI 中,使用對話識別碼取代 {conversationId} ,以及使用 watermark 值來取代 {watermark_value} (如果有提供 watermark 參數的話)。 watermark 是選用參數。 如果要求 URI 中有指定 watermark 參數,對話會從浮水印 重新執行,以保證沒有任何訊息遺失。 如果 watermark 參數從要求 URI 中省略,則只會收到重新連線要求執行之後的訊息。

下列程式碼片段提供重新連線要求和回應的範例。

要求

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

回應

如果要求成功,回應會包含對話識別碼、語彙基元和新的 WebSocket 串流 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..."
}

重新連線到對話

用戶端必須使用新的 WebSocket 串流 URL,以在 60 秒內重新連線到對話。 如果目前無法建立連線,用戶端必須發出另一個重新連線要求來產生新的資料流程 URL。

如果您已在 Direct Line 設定中啟用「增強型驗證選項」,但未正確設定附加至要求的權杖,則可能會收到 400 "MissingProperty" 錯誤。

其他資源