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_value} 를 워터마크 값으로 바꿉니다(watermark 매개 변수를 사용할 수 있는 경우). watermark 매개 변수는 선택 사항입니다. 요청 URI에 watermark 매개 변수가 지정된 경우 워터마크부터 대화가 재생되므로 메시지가 손실되지 않도록 보장됩니다. 요청 URI에서 watermark 매개 변수가 생략되면 연결 요청 이후에 수신된 메시지만 재생됩니다.

다음 코드 조각은 다시 연결 요청 및 응답의 예제를 제공합니다.

요청

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

응답

요청이 성공적이면 응답에는 대화의 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..."
}

대화에 다시 연결

클라이언트는 새 WebSocket 스트림 URL을 사용하여 60초 이내에 대화에 다시 연결해야 합니다. 이 시간 동안 연결을 설정할 수 없는 경우 클라이언트는 다른 다시 연결 요청을 실행하여 새 스트림 URL을 생성해야 합니다.

Direct Line 설정에서 "향상된 인증 옵션"을 사용하도록 설정한 경우 올바르게 구성된 토큰이 요청에 연결되지 않으면 400 "MissingProperty" 오류가 발생할 수 있습니다.

추가 리소스