Los WebSockets te permiten recopilar datos en tiempo real y te ayuda a prevenir la recopilación de demasiados datos.
¿Cuándo debo usar WebSockets?
Usar WebSockets para descargar podría consumir demasiados recursos o no aportar información completamente en tiempo real. Tras una conexión con éxito, el cliente empezará a recibir mensajes dependiendo de la configuración de la integración Connector API en la aplicación Mews. Encontrarás toda la información necesaria acerca de la solución WebSockets en nuestra documentación. Puedes consultar nuestros límites de solicitudes en nuestra guía.
¿Puedo probar WebSockets en el modo Demo?
Es posible configurar y probar WebSockets en el entorno de Mews Demo (Modo de pruebas).
Probar con credenciales
La manera más sencilla de probar las conexiones WebSocket sería usar una extensión de navegador. Por ejemplo la extensión de Chrome Browser WebSocket Client.
Del mismo modo que necesitas una pareja de Tokens de Acceso y de Cliente para hacer distintas llamadas a Mews, necesitarás lo mismo para autenticar la conexión WebSocket. El Token de cliente corresponde con la integración genérica "¿Estás listo para integrar con Mews?" de Mews Demo.
Para hacer pruebas NO necesitas añadir una nueva integración. En su lugar, usa la pareja de tokens listados en la Sección autenticación de nuestra documentación de Connector API.
Sigue el formato de URL descrito en la sección Endpoint de la documentación de WebSockets para configurar la conexión.
Mantener la conexión
Mews recomienda que la integración envíe una solicitud Ping WebSocket a Mews con intervalos regulares (por ejemplo, cada cinco minutos) para monitorear la conexión. Si la solicitud Ping falla, tendrás que reiniciar la interfaz de la integración o tendrás que intentar restablecer la conexión.
Tipos de evento que puedes probar
Dependiendo de lo que haga la integración, puede que quieras probar alguno de los cuatro tipos de eventos WebSocket listados en la Documentación API.
Sencillamente, realiza cualquier cambio en los artículos relevantes en Mews (como reserva, habitación, tarifa, precio, etcétera) para activar un evento.
Cómo se ve en el entorno de producción
Cuando tu integración ha sido certificada con éxito por Mews Marketplace, recibirás un Token de cliente único para tu integración, para el entorno de producción, tendrás que emparejarlo con el Token de acceso (que varía de una propiedad a otra).
Se generará un nuevo Token de Acceso único para cada propiedad que añada una integración a sus suscripciones Marketplace. Puedes usar entonces la pareja de Tokens de acceso/cliente para establecer una conexión WebSocket entre el entorno de la propiedad en Mews y en la interfaz de tu integración.
(Guía para las propiedades sobre cómo encontrar sus Fichas de Acceso)
Probar sin credenciales
Si estás principalmente interesado en el tipo y contenido de la notificación WebSocket que se generará por un evento en particular en Mews, puedes probar WebSockets sin necesidad de configurar una conexión.
-
Ve al panel de control y abre las herramientas de desarrollo para Chrome (F12).
-
Haz clic en "Red" y luego selecciona "WS".
-
Ve al Dashboard y abre las herramientas de desarrollador para Chrome (F12), haz clic en "Network" y selecciona "WS", recarga la página si es necesario y verás el WebSocket en la lista:
-
Haz clic en el WebSocket y selecciona la pestaña "Messages". Desde ahí podrás ver todos los eventos WebSocket:
-
Cuando realizas una acción que activa un evento, lo verás ahí listado como
"Type":"Events", y podrás hacer clic en él para ver sus detalles (en este ejemplo puedes ver cómo el recurso se cambió a "Inspected"):
Si consigues conectar con el WebSocket pero no ves aparecer ningún evento, realiza cualquier acción en el hotel Mews Demo en el que estés conectado para activar un evento. (Por ejemplo, crea una reserva, haz el check-in de una reserva, marca un espacio como Inspeccionado, etcétera).
¿Podemos dar recomendaciones sobre la implementación de WebSockets?
El socio de integración debe crear instancias separadas de clientes WebSocket para cada token de acceso.
Añade un búfer de tiempo entre la conexión y la reconexión: Útil si la reconexión WebSocket sigue fallando.
En nuestra aplicación Mews Connector, que también usa WebSockets, iniciamos con un intervalo aleatorio de entre 5 y 30 segundos, y entonces, sobre cada reconexión sin éxito añadimos de 5 a 30 segundos más sobre ellos hasta alcanzar un intervalo máximo de 2 minutos. Entonces, una vez se establece una conexión correcta, la aplicación reinicia el intervalo de reconexión a su valor base.
La conexión podría caer cuando desplegamos algo en el entorno de producción, intenta esperar unos minutos antes de reconectar.
¿Enviamos siempre un evento "cerrado" cuando se cierra la conexión?
Cuando somos nosotros quienes cierran explícitamente, sí. Esto puede suceder con un cliente no autorizado; cuando se envíen demasiadas solicitudes en un periodo de tiempo corto; o en casos en que el servidor se desconecte.
Pero existen muchos motivos por los que WebSockets podría cerrar y WebSockets puede cerrarse sin notificación. Mews no'implementa ninguna solución de latido explícito. El componente NET debería soportar la solución Ping/Pong estándar a través de los códigos por defecto.
La solución Ping/Pong
El software de interfaz enviará una solicitud Ping WebSocket a Mews cada 5 minutos para controlar la conexión. Si la solicitud Pin falla, la interfaz se reiniciará automáticamente y el proceso de sincronización se activará cuando se vuelva a conectar correctamente.
¿Está implementada la solución Ping/Pong a través de nuestra API?
La solución Ping/Pong no está implementada a través de nuestra API. Se trata de una solución gestionada por el socio.
¿Dónde puedo encontrar más información sobre la solución Ping/Pong?
https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_servers https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_servers https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_servers https://stackoverflow.com/questions/50876766/how-to-implement-ping-pong-request-for-websocket-connection-alive-in-javascript https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_servers https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_servers https://stackoverflow.com/questions/50876766/how-to-implement-ping-pong-request-for-websocket-connection-alive-in-javascript