Volver a conectarse a una conversación en Direct line API 3,0Reconnect to a conversation in 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.If a client is using the WebSocket interface to receive messages but loses its connection, it may need to reconnect. 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.In this scenario, the client must generate a new WebSocket stream URL that it can use to reconnect to the conversation.

Generar una nueva dirección URL de secuencia de WebSocketGenerate a new WebSocket stream URL

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:To generate a new WebSocket stream URL that can be used to reconnect to an existing conversation, issue this request:

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).In this request URI, replace {conversationId} with the conversation ID and replace {watermark_value} with the watermark value (if the watermark parameter is available). El watermark es opcional.The watermark parameter is optional. 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.If the watermark parameter is specified in the request URI, the conversation replays from the watermark, guaranteeing that no messages are lost. 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.If the watermark parameter is omitted from the request URI, only messages received after the reconnection request are replayed.

Los fragmentos de código siguientes proporcionan un ejemplo de la solicitud de reconexión y la respuesta.The following snippets provide an example of the Reconnect request and response.

SolicitudRequest

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

ResponseResponse

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.If the request is successful, the response will contain an ID for the conversation, a token, and a new WebSocket stream 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..."
}

Volver a conectarse a una conversaciónReconnect to the conversation

El cliente debe usar la nueva dirección URL de secuencia de WebSocket para volver a conectarse a la conversación en 60 segundos.The client must use the new WebSocket stream URL to reconnect to the conversation within 60 seconds. Si no se puede establecer la conexión durante este tiempo, el cliente debe emitir otra solicitud de reconexión para generar una nueva dirección URL de secuencia.If the connection cannot be established during this time, the client must issue another Reconnect request to generate a new stream URL.

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.If you have "Enhanced authentication option" enabled in the Direct Line settings, you might get a 400 "MissingProperty" error if you don't have a correctly configured token attached to the request.

Recursos adicionalesAdditional resources