Compartir a través de


Volver a conectarse a una conversación en Direct Line API 3.0

Si un cliente usa la interfaz WebSocket para recibir mensajes pero pierde su conexión, es posible que tenga que volver a conectarse. En este caso, el cliente debe generar una nueva URL de secuencia de WebSocket que pueda usar para volver a conectarse a la conversación.

Generar una nueva dirección URL de secuencia de WebSocket

Para generar una nueva URL de secuencia de WebSocket que se pueda usar para volver a conectarse a una conversación existente, emita esta solicitud:

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

En este identificador URI de solicitud, reemplace {conversationId} por el identificador de conversación y reemplace {watermark_value} por el valor de la marca de agua (si el parámetro watermark está disponible). El watermark es opcional. Si el parámetro watermark se especifica en el URI de solicitud, la conversación se reproduce desde la marca de agua, lo que garantiza que ningún mensaje se pierda. Si se omite el parámetro watermark en el URI de la solicitud, se reproducen únicamente los mensajes recibidos tras la solicitud de reconexión.

Los fragmentos de código siguientes proporcionan un ejemplo de la solicitud de reconexión y la respuesta.

Solicitud

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

Response

Si la solicitud es correcta, la respuesta contendrá un identificador para la conversación, un token y una nueva dirección URL de secuencia de 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..."
}

Volver a conectarse a una conversación

El cliente debe usar la nueva dirección URL de secuencia de WebSocket para volver a conectarse a la conversación en 60 segundos. Si la conexión no se puede establecer durante este tiempo, el cliente debe emitir otra solicitud de reconexión para generar una nueva dirección URL de secuencia.

Si tiene "Enhanced authentication optio" (Opción de autenticación mejorada) habilitada en la configuración de Direct Line, podría recibir un error 400 "MissingProperty" si no tiene un token configurado correctamente adjunto a la solicitud.

Recursos adicionales