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} を会話 ID に、(watermark パラメーターが使用可能な場合は) {watermark_value} を基準値に置き換えてください。 watermark パラメーターは省略可能です。 要求 URI で watermark パラメーターが指定されている場合、会話は基準値から再生され、メッセージが失われないことが保証されます。 要求 URI で watermark パラメーターが省略されている場合は、再接続要求後の受信メッセージのみが再生されます。

次のスニペットは、再接続要求と応答の例を示しています。

Request

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

Response

要求が成功した場合の応答には、会話の ID、トークン、および新しい 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..."
}

会話に再接続する

クライアントでは、60 秒以内に新しい WebSocket ストリーム URL を使用して、会話に再接続する必要があります。 この間に接続を確立できない場合、クライアントは別の再接続要求を発行して新しいストリーム URL を生成する必要があります。

Direct Line 設定で "拡張認証オプション" が有効になっている場合、正しく構成されたトークンが要求に接続されていないと、400 "MissingProperty" エラーが発生することがあります。

その他のリソース