Compartilhar via


Reconectar-se a uma conversa na API 3.0 Direct Line

Se um cliente estiver usando a interface do WebSocket para receber mensagens, mas perder a conexão, talvez ele precise se reconectar. Nesse cenário, o cliente precisa gerar uma nova URL de fluxo do WebSocket que ele pode usar para se reconectar à conversa.

Gerar uma nova URL de fluxo do WebSocket

Para gerar uma nova URL de fluxo do WebSocket que pode ser usada para se reconectar a uma conversa existente, emita esta solicitação:

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

Nesse URI de solicitação, substitua {conversationId} pela ID de conversa e {watermark_value} pelo valor de marca-d'água (caso o parâmetro watermark esteja disponível). O watermark é opcional. Se o parâmetro watermark for especificado no URI de solicitação, a conversa será reproduzida com base na marca-d'água, garantindo que nenhuma mensagem seja perdida. Se o parâmetro watermark for omitido do URI de solicitação, apenas as mensagens recebidas após a solicitação de reconexão serão reproduzidas.

Os snippets a seguir fornecem um exemplo da solicitação de Reconexão e da resposta.

Solicitação

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

Resposta

Se a solicitação for bem-sucedida, a resposta conterá uma ID da conversa, um token e uma nova URL de fluxo do WebSocket.

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

Reconectar-se à conversa

O cliente precisa usar a nova URL de fluxo do WebSocket para se reconectar à conversa em até 60 segundos. Se a conexão não puder ser estabelecida durante esse tempo, o cliente deverá emitir outra solicitação Reconectar para gerar uma nova URL de fluxo.

Se você tiver a "Opção de autenticação avançada" habilitada nas configurações do Direct Line, poderá receber um erro 400 "MissingProperty" se não tiver um token configurado corretamente anexado à solicitação.

Recursos adicionais