Heim  >  Artikel  >  PHP-Framework  >  Laravel-Entwicklung: Wie implementiert man einen WebSockets-Server mit Laravel Echo Server?

Laravel-Entwicklung: Wie implementiert man einen WebSockets-Server mit Laravel Echo Server?

WBOY
WBOYOriginal
2023-06-13 15:08:441516Durchsuche

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.

Was ist Laravel Echo Server?

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.

Installieren Sie Laravel Echo Server

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

Laravel-Anwendung konfigurieren

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.

Laravel Echo Server konfigurieren

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.

Laravel Echo Server-Datei konfigurieren

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": ""
    }
}
  • authHost: Der in Laravel konfigurierte Hostname/die Adresse der Anwendung.
  • authEndpoint: Broadcast-Authentifizierungsendpunkt in Laravel-Anwendungen.
  • Kunden: Kundenname und Schlüssel.
  • Datenbank: Speichertyp der Kundendaten.
  • devMode: Ob Laravel Echo Server im Entwicklungsmodus läuft.
  • Host: Der an den WebSocket-Server gebundene Hostname.
  • Port: Der an den WebSocket-Server gebundene Port.
  • Protokoll: Das Protokoll des WebSocket-Servers.
  • Abonnenten: Nachrichtenabonnenten.
  • apiOriginAllow: Host, der API-Anfragen unterstützt.

Ändern und speichern Sie die Konfigurationsdatei entsprechend Ihrer tatsächlichen Umgebung.

Laravel Echo Server starten

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn