Heim > Artikel > PHP-Framework > Laravel-Entwicklung: Wie implementiert man einen WebSockets-Server mit Laravel Echo Server?
Mit der rasanten Entwicklung der Echtzeit-Kommunikationstechnologie sind WebSockets zur Wahl vieler Webentwickler geworden, und das Laravel-Framework bildet da keine Ausnahme. Mit Laravel Echo Server können Webentwickler problemlos WebSockets-Server implementieren und schnell Echtzeit-Kommunikationsanwendungen erstellen. In diesem Artikel finden Sie eine ausführliche Anleitung für die ersten Schritte mit Laravel Echo Server, damit Sie besser verstehen, wie Sie damit Echtzeitkommunikation in Laravel-Anwendungen implementieren.
Laravel Echo Server ist ein Open-Source-Projekt. Es handelt sich um einen Echtzeit-Kommunikationsserver für Laravel Echo. Er kann mit Laravel Echo zur Implementierung der WebSockets-Kommunikation verwendet werden. Laravel Echo ist eine JavaScript-Bibliothek, die es Entwicklern ermöglicht, Anwendungen mithilfe einfacher Syntax mit WebSockets-Servern zu verbinden. Als Server fungiert der Laravel Echo Server.
In Laravel Echo Server können Entwickler mithilfe von Node.js und Socket.io Echtzeit-Kommunikationsserver erstellen. Laravel Echo Server basiert auf Socket.io und bietet eine einfache API und Konsole, um Benutzern das Erstellen von WebSockets-Servern zu erleichtern.
Zuerst müssen Sie Node.js und npm installieren. Wenn Sie es bereits installiert haben, überspringen Sie diesen Schritt.
Installieren Sie Node.js und npm
sudo apt-get update sudo apt-get install nodejs sudo apt-get install npm
Nach Abschluss der Installation überprüfen Sie bitte, ob Node.js und npm erfolgreich installiert wurden.
node -v npm -v
Als nächstes können Sie Laravel Echo Server mit npm installieren. Geben Sie zur Installation den folgenden Befehl im Terminal ein:
sudo npm install -g laravel-echo-server
Sobald die Installation abgeschlossen ist, können Sie die Version von Laravel Echo Server mit dem folgenden Befehl überprüfen:
laravel-echo-server -v
Bevor Sie Laravel Echo Server verwenden, müssen Sie dies tun Konfigurieren Sie Ihre Laravel-Anwendung für die Kommunikation mit dem WebSocket-Server. Nach der Laravel-Version 5.6 verfügt das Laravel-Framework über einen integrierten Pusher-Dienstanbieter. In config/broadcasting.php finden Sie die Konfiguration für den Pusher-Dienstanbieter.
Standardmäßig verwendet das Laravel-Framework den Pusher-Dienstanbieter, um Broadcast-Ereignisse zu verarbeiten. Wenn Sie jedoch Laravel Echo Server verwenden möchten, müssen Sie diese Datei ändern, damit Laravel Echo auf Broadcast-Ereignisse auf dem WebSocket-Server warten kann.
Bevor Sie die Datei config/broadcasting.php ändern, müssen Sie zunächst Composer-Abhängigkeiten installieren.
composer require predis/predis
Öffnen Sie nun die Datei config/broadcasting.php und ändern Sie den Broadcast-Treiber in Redis.
'connections' => [ 'redis' => [ 'driver' => 'redis', 'connection' => 'default', ], ],
Als nächstes müssen Sie den Redis-Dienst installieren und starten. Redis kann mit dem folgenden Befehl installiert werden:
sudo apt-get install -y redis-server
Starten Sie den Redis-Dienst:
sudo systemctl start redis
Jetzt ist die Laravel-Anwendung bereit, mit dem Laravel Echo Server zu kommunizieren.
In diesem Abschnitt konfigurieren wir Laravel Echo Server und starten ihn. Laravel Echo Server bietet eine einfache Konfigurationsdatei, mit der Sie den WebSocket-Server konfigurieren können, indem Sie die Einstellungen der Datei ändern. Standardmäßig verwendet Laravel Echo Server Dateispeicher zum Speichern von Client-Daten. Sie können jedoch auch Redis zum Speichern von Client-Daten verwenden.
Bevor Sie Laravel Echo Server verwenden, müssen Sie zunächst eine Konfigurationsdatei erstellen. Mit dem folgenden Befehl können Sie eine Konfigurationsdatei im Stammverzeichnis Ihrer Anwendung erstellen.
laravel-echo-server init
Nachdem der Init-Befehl ausgeführt wurde, erstellt Laravel Echo Server eine neue Konfigurationsdatei laravel-echo-server.json. Mit den folgenden Befehlen können Sie die Konfigurationsdatei bearbeiten.
nano laravel-echo-server.json
Im Editor siehst du die Standardeinstellungen für das Profil. Hier sind einige allgemeine Einstellungen, die Sie nach Bedarf ändern können.
{ "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": "" } }
Ändern und speichern Sie die Konfigurationsdatei entsprechend Ihrer tatsächlichen Umgebung.
Nach Abschluss der Konfiguration verwenden Sie den folgenden Befehl, um Laravel Echo Server zu starten.
laravel-echo-server start
Laravel Echo Server ist nun erfolgreich gestartet und kann zur Implementierung eines WebSocket-Servers verwendet werden.
Echtzeitkommunikation ist mit Laravel Echo Server sehr einfach. Senden Sie in Laravel einfach ein Ereignis mit dem folgenden Befehl:
broadcast(new WebsocketDemoEvent($user, $message));
Dadurch wird ein neues WebsocketDemoEvent-Ereignis auf dem Laravel Echo Server gesendet. Bitte stellen Sie sicher, dass Sie Laravel Echo Server mit dem obigen Befehl in der Konsole gestartet haben.
Laravel Echo Server bietet eine benutzerfreundliche Verwaltungsoberfläche, auf die Sie über Ihren Browser zugreifen können, um die Statusinformationen des WebSocket-Servers anzuzeigen. Standardmäßig befindet sich die Verwaltungsschnittstelle unter http://localhost:6001.
In diesem Artikel erfahren Sie, wie Sie mit Laravel Echo Server einen WebSockets-Server implementieren. Laravel Echo Server bietet eine einfache Möglichkeit, Echtzeitkommunikation abzuwickeln, was WebSockets für eine Vielzahl von Webentwicklern sehr nützlich macht. Wenn Sie nach einer einfachen Möglichkeit suchen, Echtzeitkommunikation zu implementieren, probieren Sie Laravel Echo Server aus.
Das obige ist der detaillierte Inhalt vonLaravel-Entwicklung: Wie implementiert man einen WebSockets-Server mit Laravel Echo Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!