Skip to main content
La Evolution API utiliza socket.io para emitir eventos en tiempo real, aprovechando la tecnología WebSocket. Esto hace que el desarrollo de integraciones sea más eficiente y directo para los desarrolladores. El WebSocket proporciona un canal de comunicación full-duplex sobre una única conexión duradera, permitiendo el flujo de datos en tiempo real entre el cliente y el servidor.
Para activar los WebSockets, defina la variable de entorno WEBSOCKET_ENABLED como true. Vea más detalles en Variables de Entorno.

Modos de Operación del WebSocket

Modo Global

En el modo global, la variable de entorno WEBSOCKET_GLOBAL_EVENTS debe definirse como true. En este modo, el WebSocket se inicializa al inicio del servicio y envía eventos de todas las instancias, independientemente de los canales. Esto significa que cualquier cliente conectado al WebSocket recibirá eventos globales, abarcando todas las instancias de la Evolution API configuradas en el sistema.
  • Activación: Configure en el archivo .env:
  • Funcionamiento: Ideal para escenarios donde desea monitorear o procesar eventos de todas las instancias simultáneamente, sin necesidad de establecer una conexión separada para cada instancia.
  • Conexión: En el modo global, la conexión al WebSocket no requiere el uso de /nombre_instancia en la URL. La URL de conexión será simplemente:

Modo Tradicional

En el modo tradicional, el WebSocket solo puede conectarse después de la ejecución del comando set en la instancia. Esto permite que el WebSocket sea específico para cada instancia, y la comunicación en tiempo real se restringe a esa instancia.
  • Activación: Asegúrese de que WEBSOCKET_GLOBAL_EVENTS esté definido como false o no esté configurado, y siga el flujo tradicional de configuración de la instancia.
  • Funcionamiento: Ideal para escenarios donde desea una comunicación en tiempo real más aislada, enfocada en una única instancia, permitiendo mayor control y segmentación de los eventos.
  • Conexión: En el modo tradicional, la conexión al WebSocket requiere el uso de /nombre_instancia en la URL:

Conexión al WebSocket

Modo Global

En el modo global, la URL de conexión es más simple y no requiere el nombre de la instancia:

Modo Tradicional

En el modo tradicional, utilice el siguiente formato de URL:
Sustituya api.susitio.com por el dominio real de su API y nombre_instancia por el nombre de su instancia específica.

Ejemplo de Establecimiento de Conexión WebSocket

Aquí hay un ejemplo básico de cómo establecer una conexión WebSocket usando JavaScript:
En este ejemplo, sustituya nombre_evento por el evento específico que desea escuchar.

Manejo de Eventos

Una vez conectado, puede escuchar varios eventos emitidos por el servidor. Cada evento puede transportar datos relevantes para el contexto del evento. Por ejemplo, si está escuchando actualizaciones de mensajes, puede recibir datos que contengan el contenido del mensaje actualizado y metadatos.

Cierre de la Conexión

Para cerrar la conexión WebSocket, utilice el método disconnect:
Recuerde manejar la conexión de forma responsable, desconectando cuando su aplicación o componente sea desmontado para evitar fugas de memoria y garantizar el uso eficiente de recursos.

Consideraciones Finales

La Evolution API ofrece una forma poderosa de interacción en tiempo real a través de los WebSockets, proporcionando una experiencia continua tanto para desarrolladores como para usuarios finales. Ya sea en el modo global, monitoreando todas las instancias simultáneamente, o en el modo tradicional, enfocado en una única instancia, la flexibilidad del sistema permite la adaptación a las necesidades específicas de su proyecto.