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
- Conceptos clave
- Autenticación
- Receive activities via WebSocket stream (Recepción de actividades mediante una secuencia de WebSocket)