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:
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"]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:
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}]}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]