Connexion du Centrifugo à Laravel

DEV - 05/09
Dans cet article, nous examinerons l'intégration du serveur en temps réel Centrifugo avec le Laravel ...

Dans cet article, nous examinerons l'intégration du serveur en temps réel Centrifugo avec le framework Laravel, les paramètres de base et les nuances de fonctionnement.

Cet article concernera davantage la mise en œuvre du cadre lui-même que la description de Centrifugo.

Vous pouvez également trouver un exemple d'interaction dans ce modèle, qui a été décrit dans un article sur Frankenphp + Laravel

Centrifugo est un serveur en temps réel qui prend en charge divers transports pour la connexion des clients, y compris WebSocket, Streaming HTTP, des événements (SSE) (SSE) et autres. Il utilise le modèle de publication sur la messagerie pour la messagerie

Il agit comme intermédiaire (proxy) entre votre backend et les clients (Web, applications mobiles). Sa tâche principale est de livrer des messages du serveur aux clients et entre les clients instantanément.

Ce qu'il peut faire:

  1. Envoyage à sens unique (notifications push): le serveur peut envoyer un message à tous les clients abonnés ou aux utilisateurs spécifiques.
  2. Communication bidirectionnelle (pub / sub): les clients peuvent s'abonner aux canaux (sujets) et publier des messages en eux que tous les autres abonnés recevront (s'ils ont des droits).
  3. Échelle: s'exécute facilement dans un cluster (via redis ou tarantool) pour gérer la charge de millions de connexions.
  4. Fiabilité: restaure les connexions perdues et livre des messages qui ont été envoyés pendant que le client était hors ligne (canaux persistants).
  5. Vérification des droits d'accès: les demandes de connexion et de publication passent toujours par votre backend pour l'autorisation, qui garantit la sécurité.

Philosophie clé:

Centrifugo ne remplace pas votre backend et votre base de données. Il prend en charge la partie la plus difficile et la plus en ressources - en maintenant des millions de connexions constantes et l'envoi efficace des messages, tandis que la logique d'application reste sur votre serveur.

Vous pouvez trouver la documentation ici

Déploiement du Centrifugo:

Nous l'installerons via Docker

Exemple Dockerfile:

À partir de Centrifugo / Centrifugo: v6 comme base de la base en tant que copie de développement .docker / centrifugo / config-test.json /centrifugo/config.json cmd ["Centrifugo", "-C", "config.json"] De la base en tant que copy. ["Centrifugo", "-C", "config.json"]
Entrez le mode de sortie en mode plein écran

Dans cet exemple, nous soulevons le conteneur avec notre service et ajoutons une configuration avec des paramètres.

Nous utilisons la multiplication en séparant les configurations:

  • Nous stockons la configuration de test dans le référentiel
  • Le second est sur le serveur ou dans Env GitHub / GitLab

Cette séparation est nécessaire car elle contient les clés de chiffrement et le mot de passe du panneau d'administration.

Exemple de configuration de test:

{"token_hmac_secret_key": "votre secret-here", "admin_password": "strong-password", "admin_secret": "admin-secret", "api_key": "votre-api-key", "canaux": [{"nom": "news" "History_Size": 100, // Stockez les 100 derniers messages "History_TTL": "5m" // Gardez l'histoire pendant 5 minutes}, {"Name": "User: $ User", // Personal Channel (par utilisateur) "Abonnez-vous": true, "Publier": False // Unique suivi "join_leave": true // Envoi des événements d'entrée / sortie}]}
Entrez le mode de sortie en mode plein écran

Pour générer votre configuration, vous devez entrer dans le conteneur et entrer la commande -Centrifugo Genconfig

ou vou...
[Courte citation de 8% de l'article original]

Loading...