Wie benutze ich Events Broadcasting in Laravel?
Richten Sie den Broadcast -Treiber ein und installieren Sie das Pusher -Paket und konfigurieren Sie die Anmeldeinformationen in der .Env -Datei. 2. Aktivieren Sie Broadcast :: Routes () im RouteServiceProvider, um das Rundfunkrouting zu aktivieren. 3. Erstellen Sie eine Ereignisklasse, die die Soll -Broadcast -Schnittstelle implementiert, Broadcaston-, Broadcastas- und Broadcast -mit -Methoden definieren. 4. Definieren Sie die Autorisierungslogik des privaten Kanals in Routen/Kanälen.php; 5. Ereignisse über Event () oder Dispatch () im Controller verteilen; 6. Das Front-End verwendet Laravel Echo, um eine Verbindung zum Pusher herzustellen und Ereignisse des angegebenen Kanals anzuhören, um Echtzeit-Updates für den Kunden zu erzielen. Der vollständige Prozess stellt sicher, dass Ereignisse sicher vom Backend bis zum Frontend ausgestrahlt werden und für Echtzeit-Benachrichtigungen, Chats und andere Szenarien geeignet sind.
Mit Events Broadcasting in Laravel können Sie Ereignisse von Ihrem Server zu clientseitigen Anwendungen in Echtzeit übertragen, in der Regel mit WebSockets. Dies ist nützlich für Funktionen wie Live-Benachrichtigungen, Chat-Systeme oder Echtzeit-Dashboards. Laravel erleichtert dies mit seinem Event -Rundfunksystem, das häufig mit Tools wie Pusher, Redis und Laravel Echo verwendet wird.

Hier erfahren Sie, wie Sie Events Broadcasting in Laravel verwenden:
1. Setzen Sie den Broadcasting -Treiber ein
Wählen Sie zuerst einen Rundfunkfahrer. Am häufigsten ist Pusher , aber Laravel unterstützt auch Redis und andere.

-
Installieren Sie das erforderliche Paket:
Der Komponist benötigt Pusher/Pusher-Php-Server
Setzen Sie in
.env
Ihren Rundfunk -Treiber und Ihre Anmeldeinformationen:Broadcast_driver = Pusher
Pusher_app_id = your_app_id pusher_app_key = your_app_key pusher_app_secret = your_app_secret pusher_app_cluster = mt1
- Stellen Sie sicher, dass `config/runding.php` so eingestellt ist, dass Pusher verwendet wird (bei der Konfiguration standardmäßig). --- ### 2. ** Aktivieren Sie das Rundfunk in RouteServiceProvider ** Laravel deaktiviert standardmäßig die Rundfunkrouten. Sie müssen die Zeile "Broadcast :: Routes () in" App \ Providers \ RouteServiceProvider "innerhalb der" Boot "-Methode überzeugen: `` `php Verwenden Sie Illuminate \ Support \ Facades \ Sendungen; öffentliche Funktion boot () { Sendung :: Routes (); // ... }
Dies ermöglicht die Route /broadcasting/auth
-Route für private Kanäle.
3. Erstellen Sie eine Sendebestimmungsveranstaltung
Generieren Sie eine Veranstaltung mit Artisan:
Php Artisan Make: Event NewMessagesent
In Ihrer Veranstaltungsklasse ( NewMessageSent.php
) sollte der Implementierung ShouldBroadcast
, um es aus dem Sendung zu gestalten:
<? Php Namespace App \ Ereignisse; Verwenden Sie Illuminate \ Broadcasting \ Channel; Verwenden Sie Illuminate \ Broadcasting \ Interactswithsockets; Verwenden Sie Illuminate \ Broadcasting \ Presencechannel; Verwenden Sie Illuminate \ Broadcasting \ privatechannel; Verwenden Sie Illuminate \ Contracts \ Broadcasting \ SHODBROADCast; Verwenden Sie Illuminate \ Foundation \ Events \ Dispatchable; Verwenden Sie Illuminate \ Queue \ SerializesModels; Klasse NewMessagesent -Geräte sollte BROADCASTS { Verwenden Sie Versand, Interactswithsockets, serializesModels; öffentliche $ message; öffentliche Funktion __construct ($ message) { $ this-> message = $ message; } öffentliche Funktion Broadcaston () { Neue privatechannel zurückgeben ('Chat.'. $ this-> message-> chat_id); } öffentliche Funktionsförderung () { zurück "message.ent '; } öffentliche Funktion BroadcastWith () { return ['message' => $ this-> message-> content]; } }
-
broadcastOn()
: Definiert den Kanal (öffentlich, privat oder Präsenz). -
broadcastAs()
: Optionaler benutzerdefinierter Ereignisname. -
broadcastWith()
: Anpassen von Daten an Clients anpassen.
Verwenden Sie
PrivateChannel
oderPresenceChannel
, wenn Sie eine Autorisierung benötigen.
V.
Für private Kanäle wie chat.1
erfordert Laravel Autorisierung. Definieren Sie die Autorisierungslogik in routes/channels.php
:
Verwenden Sie Illuminate \ Support \ Facades \ Sendungen; Broadcast :: Channel ('Chat. {Chatid}', Funktion ($ user, $ chatid) { // true zurück, wenn der Benutzer auf diesen Chat zugreifen kann $ user-> chats-> enthält ('id', $ chatid); });
Dies stellt sicher, dass nur autorisierte Benutzer Ereignisse auf diesem Kanal erhalten.
5. Entsenden Sie das Ereignis in Ihrem Controller
Verwenden Sie App \ Ereignisse \ newMessagesent; // innerhalb einer Controller -Methode Ereignis (NewMessagesent ($ message)); // Oder NewMessageSent :: Dispatch ($ message);
Beim Versand überträgt Laravel das Ereignis an den angegebenen Kanal.
6. Hören Sie mit Laravel Echo auf die Kundenseite zu
Installieren Sie Laravel Echo und Pusher JS in Ihrem Frontend:
NPM Install-Save Laravel-Echo Pusher-Js
Initialisieren Sie Laravel -Echo in Ihrem JS (z. B. resources/js/bootstrap.js
):
Import echo von 'laravel-echo'; window.pusher = required ('pusher-js'); window.echo = new echo ({{{ Sender: 'Pusher', Schlüssel: process.env.mix_pusher_app_key, Cluster: process.env.mix_pusher_app_cluster, verschlüsselt: wahr, Authendpoint: '/Broadcasting/Auth',, auth: { Header: { Autorisierung: 'Bearer' localStorage.getItem ('Token'), //, wenn api auth verwendet }, }, });
Stellen Sie sicher, dass Sie den Pusher -Schlüssel in
.env
offenlegen:Mix_pusher_app_key = "$ {pusher_app_key}" Mix_pusher_app_cluster = "$ {pusher_app_cluster}"
Dann hören Sie auf die Veranstaltung zu:
Echo.private (`chat.1`) .Listen ('message.Sent', (e) => { console.log (e.message); });
Wenn Sie broadcastAs()
nicht verwendet haben, verwenden Sie den vollständigen Ereignisklassennamen:
.Listen ('. App.Events.newMessagesent', (e) => {...})
Zusammenfassung der wichtigsten Schritte
- ✅ Setzen Sie
BROADCAST_DRIVER
und Anmeldeinformationen - ✅
Broadcast::routes()
in RouteServiceProvider - ✅ Erstellen Sie die Implementierung des Ereignisses
ShouldBroadcast
- ✅ Definieren Sie Kanal und optionales Author in
routes/channels.php
- ✅ Ereignis aus dem Backend absenden
- ✅ Verwenden Sie Laravel Echo an Frontend, um zuzuhören
Die Verwendung von Events Broadcasting in Laravel ist nicht kompliziert, sobald Sie den Treiber eingerichtet haben und den Fluss verstehen. Es funktioniert hervorragend mit Vue/React -Apps und APIs, insbesondere in Kombination mit Sanctum für die Spa -Authentifizierung.
Machen Sie im Grunde genommen einfach den Event ausrundbar, sichern Sie den Kanal bei Bedarf und hören Sie auf dem Frontend zu.
Das obige ist der detaillierte Inhalt vonWie benutze ich Events Broadcasting in Laravel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Erstellen Sie Referenzen Tabelle, um Empfehlungsbeziehungen zu erfassen, einschließlich Empfehlungen, Empfehlungen, Empfehlungscodes und Nutzungszeit; 2. Definieren Sie die Beziehungen zwischen Hörern und Hasmany im Benutzermodell, um Empfehlungsdaten zu verwalten. 3. Erstellen Sie bei der Registrierung einen eindeutigen Empfehlungscode (kann durch Modellereignisse implementiert werden). 4. Erfassen Sie den Empfehlungscode, indem Sie die Parameter während der Registrierung abfragen, nach Überprüfung eine Empfehlungsbeziehung aufstellen und die Selbstverantwortung verhindern. 5. den Belohnungsmechanismus auslösen, wenn empfohlene Benutzer das angegebene Verhalten (Abonnementauftrag) abschließen; 6. Generieren Sie gemeinsame Empfehlungsverbindungen und verwenden Sie URLs mit Laravel Signature, um die Sicherheit zu verbessern. 7. Empfehlungsstatistiken auf dem Dashboard anzeigen, z. B. die Gesamtzahl der Empfehlungen und konvertierten Zahlen; Es ist notwendig, sicherzustellen, dass Datenbankbeschränkungen, Sitzungen oder Cookies bestehen bleiben.

AccessorsandMutatorsinlaravel'seloquentorMaloutOrmatorMipulatemodelattributesWenRetriesingingingValues.1

Das Repository -Muster ist ein Entwurfsmuster, mit dem die Geschäftslogik aus der Datenzugriffslogik entkoppelt wird. 1. Es definiert Datenzugriffsmethoden über Schnittstellen (Vertrag); 2. Die spezifischen Vorgänge werden von der Repository -Klasse implementiert. 3. Die Controller verwendet die Schnittstelle durch Abhängigkeitsinjektion und kontaktiert nicht direkt die Datenquelle. 4. Vorteile sind ordentlicher Code, starke Testbarkeit, einfache Wartung und Teamzusammenarbeit; 5. Für mittlere und große Projekte können kleine Projekte das Modell direkt verwenden.

LaravelEloquentsupportssubqueriesinSELECT,FROM,WHERE,andORDERBYclauses,enablingflexibledataretrievalwithoutrawSQL;1.UseselectSub()toaddcomputedcolumnslikepostcountperuser;2.UsefromSub()orclosureinfrom()totreatsubqueryasderivedtableforgroupeddata;3.Us

Erstellen Sie ein Laravel -Projekt und konfigurieren Sie die Datenbankumgebung. 2. Handwerker verwenden, um Modelle, Migrationen und Controller zu generieren; 3. Definieren Sie die API -Ressourcenrouting in api.php; 4. Implementieren Sie die Additions-, Lösch-, Änderungs- und Abfragemethoden im Controller und verwenden Sie die Anforderungsüberprüfung. 5. Installieren Sie Laravelsanctum, um die API -Authentifizierung zu implementieren und Routen zu schützen. 6. JSON -Antwortformat vereinigen und Fehler behandeln; 7. Verwenden Sie Postbote und andere Tools, um die API zu testen, und erhalten Sie schließlich eine vollständige und erweiterbare Erholung.

LaravelimplementsthemvcpatternByusingModelsfordatamanagement, ControllersforBusinessLogic und ViewsforPresentation.1) ModelsmodelleInlaravelArePowermallshandlingDataandrelationships.2) ControllersManagetheFlowbetweenModelsandviews.3) ViewsBladetemplattieren

Laravel'SimplementationofMvChasLimitations: 1) ControllersoftenHandlemorethanjustdeciding WhoichmodelandviewTouse, führend to'fat'controllers.2) eloquentmodelscantakeontoomananyresponsibilitybeyBeyonddatarepresentation.3) Ansichten

InstalllaravelCashierviaCompoSerandConfiguremigration und Billabletrait.2.CreateSubScriptionPlansinStripedashboardandNotePlaniden.3.
