POLITICA DE COOKIES

Q2BSTUDIO.COM utiliza cookies técnicas, analíticas, de sesión y de publicidad con la finalidad de prestar un mejor servicio. No obstante, necesitamos su consentimiento explícito para poder utilizarlas. Así mismo puede cambiar la configuración de las cookies u obtener más información aquí .

Conectando Centrifugo con Laravel

Integración de Centrifugo con Laravel: guía práctica de configuración, buenas prácticas y despliegue para aplicaciones a medida

Publicado el 07/09/2025

En este artículo te muestro cómo integrar el servidor en tiempo real Centrifugo con el framework Laravel, sus ajustes básicos, buenas prácticas y matices de operación, todo explicado en español y orientado a proyectos de aplicaciones a medida y software a medida listos para producción.

Centrifugo es un servidor realtime que ofrece WebSocket, HTTP streaming y Server Sent Events, usando el patrón pub sub para mensajería. Actúa como intermediario entre tu backend y los clientes web o móviles, encargándose de mantener miles o millones de conexiones persistentes y entregar mensajes de forma instantánea, mientras que la lógica de negocio sigue viviendo en tu backend Laravel.

Qué permite Centrifugo en tu stack 1 envío unidireccional tipo notificaciones push 2 comunicación bidireccional pub sub con canales 3 escalado horizontal con Redis o Tarantool 4 tolerancia a fallos y recuperación de conexiones 5 control de acceso con autorización en tu backend. Su filosofía clave es que no reemplaza tu aplicación ni tu base de datos, solo resuelve la parte más compleja de las conexiones en tiempo real con mucha eficiencia. Documentación oficial en documentación.

Despliegue con Docker y configuración. La forma más segura es usar multistage build con dos configuraciones separadas dev y prod. La de test puede vivir en el repositorio y la de producción mantenerse en el servidor o variables de entorno del sistema de CI evitando exponer claves sensibles como token_hmac_secret_key, admin_password, admin_secret y api_key. Puedes generar un config base ejecutando dentro del contenedor el comando centrifugo genconfig o partir del quickstart de la documentación. En la configuración define motor de almacenamiento memory o redis, presencia de usuarios por canal, tamaño y ttl de historia y namespaces si necesitas agrupar reglas de canales.

En Docker Compose levanta el servicio centrifugo publicando un puerto externo por ejemplo 8089 que apunte al puerto interno 8000. Ajusta ulimits nofile a 65535 para manejar gran cantidad de conexiones. Con esto tendrás el servidor listo para pruebas locales y para desplegarlo en cloud.

Integración en Laravel. Instala el SDK recomendado para Laravel disponible en el repositorio denis660 laravel centrifugo y sigue su README para el provider y el broadcasting driver. En tu archivo env revisa estas variables BROADCAST_DRIVER centrífugo BROADCAST_CONNECTION centrífugo CENTRIFUGO_TOKEN_HMAC_SECRET_KEY tu clave de firma CENTRIFUGO_API_KEY tu api key CENTRIFUGO_URL http colon barra barra centrifugo dos puntos 8000 o la url de tu servicio.

Con esto ya puedes emitir eventos. Opción 1 eventos nativos de Laravel con ShouldBroadcast. Crea un evento que retorne el canal en broadcastOn y el payload en broadcastWith por ejemplo enviar la fecha y hora actual a un canal público cada 5 segundos mediante una tarea programada en el scheduler de Laravel. Opción 2 publicación directa usando el SDK con el método publish indicando canal y datos.

Ejemplo de chat. Un controlador recibe un mensaje, valida el acceso al chat, lo almacena y dispara un evento MessageCreated que publica en el canal del chat. El evento puede definir su nombre con broadcastAs y su carga con broadcastWith, por ejemplo un DTO con id de mensaje, usuario, contenido y timestamps. Todos los miembros suscritos al canal del chat reciben el evento en tiempo real.

Matices importantes con Laravel Broadcasting. El mecanismo de autorización de canales privado y presence de Laravel no se aplica de forma directa en Centrifugo. Centrifugo usa su propio flujo de autorización basado en tokens JWT generados por tu backend. Por ello no funcionarán las definiciones típicas de Broadcast channel en rutas de broadcasting ni patrones como toOthers de forma automática. Si quieres excluir al emisor deberás implementarlo por tu cuenta o filtrarlo en el cliente.

Pruebas con WebSocket y Postman u otra herramienta. Conecta a la ruta ws doble barra localhost dos puntos 8089 barra connection barra websocket y añade el parámetro cf_ws_frame_ping_pong igual true para mantener ping pong activo. El flujo básico es 1 enviar un objeto connect con un token de conexión 2 suscribirte a un canal público con subscribe y el nombre del canal 3 para canales privados añade además un token de canal. En la documentación oficial tienes el catálogo de códigos de error y su significado en la página de códigos del servidor.

Autenticación desde tu backend Laravel. Genera el token de conexión usando el SDK con el método generateConnectionToken pasando el identificador del usuario como cadena. Expón un endpoint que devuelva ese token a tu cliente web o móvil y úsalo en la conexión inicial. Para canales privados genera un token con generatePrivateChannelToken recibiendo user id y el nombre del canal y entrégalo al cliente en el momento de suscribirse.

Suscribir y desuscribir desde el servidor. Además del enfoque totalmente client side puedes orquestar suscripciones desde el backend. Con el SDK del servidor es posible suscribir a un usuario a todos sus canales de chat tras el login y anular la suscripción cuando abandona un grupo o se elimina un chat, usando los métodos subscribe y unsubscribe respectivamente.

Buenas prácticas de seguridad. Mantén las claves token_hmac_secret_key, admin_password, admin_secret y api_key fuera del repositorio. Usa HTTPS y WSS en producción. Activa presence solo cuando aporte valor y limita history_size y history_ttl para optimizar recursos. Si desplegarás en cloud considera balanceadores con sticky sessions o utiliza Redis como motor para escalar horizontalmente.

Escalado y cloud. Centrifugo puede operar en clúster usando Redis o Tarantool y se integra muy bien con contenedores. Si vas a desplegarlo en la nube junto a Laravel, orquesta ambos servicios en Kubernetes o ECS y usa un proxy como Nginx o Traefik para terminación TLS y balanceo. Si necesitas ayuda con servicios cloud aws y azure, en Q2BSTUDIO diseñamos arquitecturas seguras y escalables, te invitamos a conocer nuestros servicios cloud aws y azure.

Acerca de Q2BSTUDIO. Somos una empresa de desarrollo de software especializada en aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios de inteligencia de negocio y power bi, automatización de procesos, agentes IA e ia para empresas. Si estás construyendo un backend Laravel con capacidades realtime y necesitas un front web o móvil listo para crecer, podemos ayudarte de principio a fin. Descubre más sobre nuestro enfoque de producto en aplicaciones a medida y software a medida.

Conclusión. Con Centrifugo administras millones de conexiones en tiempo real sin cargar tu aplicación Laravel. El SDK para Laravel simplifica la publicación de eventos, mientras que la autorización y la gestión de suscripciones se resuelven con JWT y el Server API de Centrifugo. Combinado con buenas prácticas de despliegue en cloud y una estrategia de seguridad sólida, obtendrás una plataforma de mensajería y notificaciones fiable, escalable y lista para experiencias modernas en tiempo real.

Palabras clave recomendadas para tu estrategia de posicionamiento aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi.

Si quieres acelerar esta integración, reforzar la arquitectura o llevar tu backend a producción con calidad empresarial, contáctanos en Q2BSTUDIO y pongamos en marcha tu siguiente proyecto.

Fin del artículo, inicio de la diversión
Construyendo software juntos

Dando vida a tus ideas desde 2008

Diseñamos aplicaciones móviles y de escritorio innovadoras que cumplen con tus requisitos específicos y mejoran la eficiencia operativa.
Más info
Cuéntanos tu visión
Sea cual sea el alcance, podemos convertir tu idea en realidad. Envíanosla y charlemos sobre tu proyecto o una colaboración futura.
Contáctanos
artículos destacados
Live Chat
Enviado correctamente.

Gracias por confiar en Q2BStudio