Partilhar via


Reconecte-se a uma conversa em Direct Line API 3.0

Se um cliente estiver a utilizar a interface WebSocket para receber mensagens, mas perder a sua ligação, poderá ter de voltar a ligar-se. Neste cenário, o cliente deve gerar um novo URL de stream WebSocket que pode usar para reconectar-se à conversa.

Gere um novo URL de stream webSocket

Para gerar um novo URL de fluxo WebSocket que pode ser usado para reconectar-se a uma conversa existente, emita este pedido:

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

Neste pedido URI, substitua {conversationId} pelo ID de conversação e substitua {watermark_value} pelo valor da marca de água (se o watermark parâmetro estiver disponível). O watermark parâmetro é opcional. Se o watermark parâmetro for especificado no pedido URI, a conversa reproduz-se a partir da marca de água, garantindo que não se perdem mensagens. Se o watermark parâmetro for omitido do pedido URI, apenas as mensagens recebidas após o pedido de reconexão são reproduzidas.

Os seguintes snippets fornecem um exemplo do pedido e resposta de Reconnect.

Pedir

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

Resposta

Se o pedido for bem sucedido, a resposta conterá um ID para a conversação, um token e um novo URL de stream 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..."
}

Reconecte-se à conversa

O cliente deve utilizar o novo URL de fluxo WebSocket para voltar a ligar-se à conversação dentro de 60 segundos. Se a ligação não puder ser estabelecida durante este tempo, o cliente deve emitir outro pedido de Reconnect para gerar um novo URL de fluxo.

Se tiver "Opção de autenticação melhorada" ativada nas definições Direct Line, poderá obter um erro de 400 "Faltando Deperte" se não tiver um token corretamente configurado anexado ao pedido.

Recursos adicionais