Maison  >  Article  >  cadre php  >  Développement Laravel : Comment implémenter un serveur WebSockets à l'aide de Laravel Echo Server ?

Développement Laravel : Comment implémenter un serveur WebSockets à l'aide de Laravel Echo Server ?

WBOY
WBOYoriginal
2023-06-13 15:08:441589parcourir

Avec le développement rapide de la technologie de communication en temps réel, WebSockets est devenu le choix de nombreux développeurs Web, et le framework Laravel ne fait pas exception. Avec Laravel Echo Server, les développeurs Web peuvent facilement implémenter des serveurs WebSockets et créer rapidement des applications de communication en temps réel. Cet article fournira un guide de démarrage détaillé avec Laravel Echo Server pour vous aider à comprendre comment l'utiliser pour implémenter la communication en temps réel dans les applications Laravel.

Qu'est-ce que Laravel Echo Server ?

Laravel Echo Server est un projet open source. Il s'agit d'un serveur de communication en temps réel pour Laravel Echo et peut être utilisé avec Laravel Echo pour implémenter la communication WebSockets. Laravel Echo est une bibliothèque JavaScript qui permet aux développeurs de connecter des applications aux serveurs WebSockets en utilisant une syntaxe simple. Le Laravel Echo Server agit comme un serveur.

Dans Laravel Echo Server, les développeurs peuvent créer des serveurs de communication en temps réel à l'aide de Node.js et Socket.io. Laravel Echo Server est basé sur Socket.io et fournit une API et une console simples pour permettre aux utilisateurs de créer des serveurs WebSockets.

Installer Laravel Echo Server

Vous devez d'abord installer Node.js et npm. Si vous l'avez déjà installé, ignorez cette étape.

Installez Node.js et npm

sudo apt-get update
sudo apt-get install nodejs
sudo apt-get install npm

Une fois l'installation terminée, veuillez vérifier si Node.js et npm sont installés avec succès.

node -v
npm -v

Ensuite, vous pouvez installer Laravel Echo Server en utilisant npm. Entrez la commande suivante dans le terminal pour installer :

sudo npm install -g laravel-echo-server

Une fois l'installation terminée, vous pouvez vérifier la version de Laravel Echo Server à l'aide de la commande suivante :

laravel-echo-server -v

Configure Laravel Application#🎜🎜 #

Avant d'utiliser Laravel Echo Server, vous devez configurer votre application Laravel pour communiquer avec le serveur WebSocket. Après la version Laravel 5.6, le framework Laravel dispose d'un fournisseur de services Pusher intégré. Dans config/broadcasting.php, vous pouvez trouver la configuration du fournisseur de services Pusher.

Par défaut, le framework Laravel utilise le fournisseur de services Pusher pour gérer les événements de diffusion. Cependant, si vous souhaitez utiliser Laravel Echo Server, vous devez modifier ce fichier afin que Laravel Echo puisse écouter les événements de diffusion sur le serveur WebSocket.

Avant de modifier le fichier config/broadcasting.php, vous devez d'abord installer les dépendances du composer.

composer require predis/predis

Maintenant, ouvrez le fichier config/broadcasting.php et remplacez le pilote de diffusion par redis.

'connections' => [
     'redis' => [
         'driver' => 'redis',
         'connection' => 'default',
     ],
],

Ensuite, vous devez installer le service Redis et le démarrer. Redis peut être installé à l'aide de la commande suivante :

sudo apt-get install -y redis-server

Démarrez le service redis :

sudo systemctl start redis

Maintenant, l'application Laravel est prête à communiquer avec le serveur Laravel Echo.

Configuration de Laravel Echo Server

Dans cette section, nous allons configurer Laravel Echo Server et le démarrer. Laravel Echo Server fournit un fichier de configuration simple que vous pouvez configurer le serveur WebSocket en modifiant les paramètres du fichier. Par défaut, Laravel Echo Server utilise le stockage de fichiers pour enregistrer les données client, mais vous pouvez choisir d'utiliser Redis pour stocker les données client.

Configurer le fichier Laravel Echo Server

Avant d'utiliser Laravel Echo Server, vous devez créer un fichier de configuration. Vous pouvez utiliser la commande suivante pour créer un fichier de configuration dans le répertoire racine de votre application.

laravel-echo-server init

Après avoir exécuté la commande init, Laravel Echo Server créera un nouveau fichier de configuration laravel-echo-server.json. Vous pouvez utiliser les commandes suivantes pour modifier le fichier de configuration.

nano laravel-echo-server.json

Dans l'éditeur, vous verrez les paramètres par défaut du profil. Voici quelques paramètres courants que vous pouvez modifier selon vos besoins.

{
    "authHost": "http://localhost",
    "authEndpoint": "/broadcasting/auth",
    "clients": [],
    "database": "redis",
    "databaseConfig": {
        "redis": {},
        "sqlite": {
            "databasePath": "/database/laravel-echo-server.sqlite"
        }
    },
    "devMode": false,
    "host": null,
    "port": "6001",
    "protocol": "http",
    "socketio": {},
    "sslCertPath": "",
    "sslKeyPath": "",
    "sslCertChainPath": "",
    "sslPassphrase": "",
    "subscribers": {
        "http": true,
        "redis": true
    },
    "apiOriginAllow": {
        "allowCors": false,
        "allowOrigin": "",
        "allowMethods": "",
        "allowHeaders": ""
    }
}

    authHost : Le nom/adresse d'hôte de l'application configuré dans Laravel.
  • authEndpoint : point de terminaison d'authentification de diffusion dans les applications Laravel.
  • clients : Nom et clé du client.
  • database : Type de stockage des données client.
  • devMode : indique si Laravel Echo Server s'exécute en mode développement.
  • host : Le nom d'hôte lié au serveur WebSocket.
  • port : Le port lié au serveur WebSocket.
  • protocol : Le protocole du serveur WebSocket.
  • abonnés : Message aux abonnés.
  • apiOriginAllow : Hôte qui prend en charge les requêtes API.
Modifiez et enregistrez le fichier de configuration en fonction de votre environnement actuel.

Démarrer Laravel Echo Server

Après avoir terminé la configuration, utilisez la commande suivante pour démarrer Laravel Echo Server.

laravel-echo-server start

Laravel Echo Server a maintenant démarré avec succès et peut être utilisé pour implémenter un serveur WebSocket.

La communication en temps réel est très simple avec Laravel Echo Server. Dans Laravel, diffusez simplement l'événement à l'aide de la commande suivante :

broadcast(new WebsocketDemoEvent($user, $message));

Cela diffusera un nouvel événement WebsocketDemoEvent sur le serveur Laravel Echo. Veuillez vous assurer que vous avez démarré Laravel Echo Server à l'aide de la commande ci-dessus dans la console.

Laravel Echo Server fournit une interface de gestion conviviale à laquelle vous pouvez accéder via votre navigateur pour afficher les informations d'état du serveur WebSocket. Par défaut, l'interface de gestion se trouve à http://localhost:6001.

Ici, cet article présente comment utiliser Laravel Echo Server pour implémenter un serveur WebSockets. Laravel Echo Server offre un moyen simple de gérer les communications en temps réel, ce qui rend les WebSockets très utiles à un large éventail de développeurs Web. Si vous recherchez un moyen simple de mettre en œuvre une communication en temps réel, essayez Laravel Echo Server.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn