Heim > Backend-Entwicklung > PHP-Tutorial > Wie Laravel Broadcasting funktioniert

Wie Laravel Broadcasting funktioniert

尊渡假赌尊渡假赌尊渡假赌
Freigeben: 2025-03-05 09:27:14
Original
134 Leute haben es durchsucht

Heute werden wir das Konzept des Rundfunks im Laravel -Web -Framework untersuchen. Sie können Benachrichtigungen an die Client -Seite senden, wenn etwas auf der Serverseite passiert. In diesem Artikel werden wir die Drittanbieter-Pusher-Bibliothek verwenden, um Benachrichtigungen an die Client-Seite zu senden. Wenn Benutzer A nun eine Nachricht an Benutzer B sendet, möchten Sie Benutzer B in Echtzeit benachrichtigen. Sie können ein Popup oder ein Alert-Box anzeigen, das Benutzer B über die neue Nachricht informiert! Lassen Sie uns den Grundfluss von Steckdosen verstehen, bevor wir tiefer in die tatsächliche Implementierung eintauchen. Letztere bevorzugen wir in diesem Artikel. Auf der Serverseite informieren wir, wenn ein bestimmtes Ereignis stattfindet, den Web-Socket-Server, indem wir ihn mit dem Kanalnamen und dem Ereignisnamen angeben. Sie erhalten den Dreh raus, während wir diesen Artikel durchgehen. Protokoll

Adapter. Wenn Sie den Pusher

-Adapter als Standard -Broadcast -Treiber verwenden. Ändern wir also die Migrationsdatei

Datenbank/Migrations/xxxx_xx_xx_xxxxxx_create_messages_table.php

Bevor Sie die Migrate -Befehl ausführen.

<?php<br><br>return [<br><br>    /*<br>    |--------------------------------------------------------------------------<br>    | Default Broadcaster<br>    |--------------------------------------------------------------------------<br>    |<br>    | This option controls the default broadcaster that will be used by the<br>    | framework when an event needs to be broadcast. You may set this to<br>    | any of the connections defined in the "connections" array below.<br>    |<br>    | Supported: "pusher", "redis", "log", "null"<br>    |<br>    */<br><br>    'default' => env('BROADCAST_DRIVER', 'null'),<br><br>    /*<br>    |--------------------------------------------------------------------------<br>    | Broadcast Connections<br>    |--------------------------------------------------------------------------<br>    |<br>    | Here you may define all of the broadcast connections that will be used<br>    | to broadcast events to other systems or over websockets. Samples of<br>    | each available type of connection are provided inside this array.<br>    |<br>    */<br><br>    'connections' => [<br><br>        'pusher' => [<br>            'driver' => 'pusher',<br>            'key' => env('PUSHER_APP_KEY'),<br>            'secret' => env('PUSHER_APP_SECRET'),<br>            'app_id' => env('PUSHER_APP_ID'),<br>            'options' => [<br>                'cluster' => env('PUSHER_APP_CLUSTER'),<br>                'useTLS' => true,<br>            ],<br>        ],<br><br>        'redis' => [<br>            'driver' => 'redis',<br>            'connection' => 'default',<br>        ],<br><br>        'log' => [<br>            'driver' => 'log',<br>        ],<br><br>        'null' => [<br>            'driver' => 'null',<br>        ],<br><br>    ],<br><br>];<br>
Nach dem Login kopieren

Erstellen Sie eine Ereignisklasse

Wenn Sie ein benutzerdefiniertes Ereignis in Laravel anziehen möchten, sollten Sie eine Klasse für dieses Ereignis erstellen. Basierend auf der Art des Ereignisses reagiert Laravel entsprechend und nimmt die erforderlichen Maßnahmen aus. Wenn sich das Ereignis hingegen vom Broadcast-Typ befindet, sendet Laravel dieses Ereignis an den Web-Socket-Server, der in der Datei

config/runding.php konfiguriert ist. notwendige pusherbezogene Informationen.

Weiter bewegen, verwenden wir die private Echo-Methode, um den privaten Kanal Benutzer zu abonnieren. {user_id}

. Wie wir bereits erläutert haben, muss sich der Kunde authentifizieren, bevor er sich für den privaten Kanal abonniert. Somit führt das Echo -Objekt Echo die erforderliche Authentifizierung durch, indem der XHR im Hintergrund mit den erforderlichen Parametern gesendet wird. Schließlich versucht Laravel, den {user_id} <p> -Route <code> zu finden, und es sollte mit der Route übereinstimmen, die wir in den

Routen/Kanälen definiert haben. Von nun an können wir alle eingehenden Ereignisse auf diesem Kanal empfangen. Um die Dinge einfach zu halten, werden wir die Nachricht, die wir vom Pusher-Server erhalten haben, nur aufmerksam gemacht. Als nächstes durchlaufen wir die Methode senden <p> in der Controller-Datei, mit der das Broadcast-Ereignis erhöht wird. Daher haben wir versucht, dieses Verhalten in der Methode <code> senden zu nachzuahmen. Da das Ereignis <code> newmessagenotification von sollte brOadcastNow

-Typ lädt, lädt Laravel die Standardkonfiguration aus der Datei

config/Broadcasting.php. Schließlich sendet es das Ereignis newmessagenotifikation <code>private auf den konfigurierten Web-Socket-Server auf dem user. {User_id} <code>user.{USER_ID} Kanal. Echo

In unserem Fall wird das Ereignis auf dem user.{USER_ID} -Kanal an den Pusher-Web-Socket-Server übertragen. Wenn die ID des Empfängerbenutzers 1 ist, wird das Ereignis über den user.1 Kanal übertragen. Wir haben bisher gebaut. Wenn Sie noch nicht angemeldet sind, werden Sie in den Anmeldebildschirm umgeleitet. Sobald Sie sich angemeldet haben, sollten Sie die von uns zuvor definierte Sendungsansicht sehen - noch nichts. Da wir die von der Pusher -Client -Bibliothek bereitgestellte

-Auseinstellung aktiviert haben, protokolliert sie alles in der Browserkonsole für Debugging -Zwecke. Lassen Sie uns sehen, was bei der Konsole an der Konsole angemeldet wird, wenn Sie auf die Seite http: // Ihre Laravel-Site-Domain/Message/Index zugreifen. Natürlich können Sie in Ihrem Fall einen anderen Kanalnamen haben, der auf der ID des Benutzers basiert, mit dem Sie angemeldet sind. Lassen Sie uns nun diese Seite offen halten, während wir die

-Methode testen. Wenn Sie einen anderen Browser verwenden möchten, müssen Sie sich anmelden, um auf diese Seite zugreifen zu können. passiert. Gehen Sie zu Ihrem Pusher -Konto und navigieren Sie zu Ihrer Bewerbung. Unter der

-Debugg

Konsole

sollten Sie in der Lage sein, Nachrichten protokolliert zu sehen. Hoffentlich war es in einem einzigen GO nicht zu viel, da ich versucht habe, die Dinge nach bestem Wissen zu vereinfachen.

Schlussfolgerung

Heute haben wir eine der am wenigsten diskutierten Merkmale von Laravel - Broadcasting durchlaufen. Sie können in Echtzeitbenachrichtigungen über Web-Sockets senden. Während des gesamten Verlaufs dieses Artikels haben wir ein Beispiel in der Praxis aufgebaut, das das oben erwähnte Konzept demonstriert hat.

Das obige ist der detaillierte Inhalt vonWie Laravel Broadcasting funktioniert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage