suchen
HeimBackend-EntwicklungPHP-TutorialWie Laravel Broadcasting funktioniert

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>

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!

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
Was ist der Unterschied zwischen UnSet () und Session_Destroy ()?Was ist der Unterschied zwischen UnSet () und Session_Destroy ()?May 04, 2025 am 12:19 AM

ThedifferencebetweenUnset () undsesion_destroy () isHatunset () clearsSesionSessionVariables whilepingTheSessionActive, whire eassession_destroy () terminatesthectheentireSession.1) UseUnset () toremovespecificSessionvariables ohnemacht

Was sind klebrige Sitzungen (Sitzungsaffinität) im Kontext des Lastausgleichs?Was sind klebrige Sitzungen (Sitzungsaffinität) im Kontext des Lastausgleichs?May 04, 2025 am 12:16 AM

StickySessionSesionSureSerRequestSareroutedTothesamerverForSessionDataconsistency.1) SessionidentificationSignSuServerSuSuSuSingCookieSorUrlmodificificificifications.2) KonsistentroutingDirectsSubsequestRequestTothSameServer.3) LastbalancedistributeNeNewuser

Was sind die verschiedenen Sitzungsspeicher -Handler in PHP verfügbar?Was sind die verschiedenen Sitzungsspeicher -Handler in PHP verfügbar?May 04, 2025 am 12:14 AM

PhpoffersVariousSsionsAVEHandlers: 1) Dateien: Standard, SimpleButMayBottleneckonHigh-Trafficsites.2) Memcached: Hochleistungs-Ideforspeed-kritische Anpassungen.3) Redis: Similartomemez, withaddedPersi.

Was ist eine Sitzung in PHP und warum werden sie verwendet?Was ist eine Sitzung in PHP und warum werden sie verwendet?May 04, 2025 am 12:12 AM

Die Sitzung in PHP ist ein Mechanismus zum Speichern von Benutzerdaten auf der Serverseite, um den Status zwischen mehreren Anforderungen aufrechtzuerhalten. Insbesondere 1) Die Sitzung wird von der Session_start () -Funktion gestartet, und die Daten werden gespeichert und durch das Super Global Array $ _Session Super Global gelesen. 2) Die Sitzungsdaten werden standardmäßig in den temporären Dateien des Servers gespeichert, können jedoch über Datenbank oder Speicherspeicher optimiert werden. 3) Die Sitzung kann verwendet werden, um die Verfolgung und Einkaufswagenverwaltungsfunktionen zu realisieren. 4) Achten Sie auf die sichere Übertragungs- und Leistungsoptimierung der Sitzung, um die Sicherheit und Effizienz des Antrags zu gewährleisten.

Erklären Sie den Lebenszyklus einer PHP -Sitzung.Erklären Sie den Lebenszyklus einer PHP -Sitzung.May 04, 2025 am 12:04 AM

PHPSSIONSSTARTWITHSession_Start (), was generatesauniquidandcreateSaServerfile;

Was ist der Unterschied zwischen absoluten und müßigen Sitzungszeitüberschreitungen?Was ist der Unterschied zwischen absoluten und müßigen Sitzungszeitüberschreitungen?May 03, 2025 am 12:21 AM

Die Absolute -Sitzungs -Zeitlimit startet zum Zeitpunkt der Erstellung der Sitzung, während eine Zeitlimit in der Leerlaufsitzung zum Zeitpunkt der No -Operation des Benutzers beginnt. Das Absolute -Sitzungs -Zeitlimit ist für Szenarien geeignet, in denen eine strenge Kontrolle des Sitzungslebenszyklus erforderlich ist, z. B. finanzielle Anwendungen. Das Timeout der Leerlaufsitzung eignet sich für Anwendungen, die die Benutzer für lange Zeit aktiv halten, z. B. soziale Medien.

Welche Schritte würden Sie unternehmen, wenn Sitzungen nicht auf Ihrem Server funktionieren?Welche Schritte würden Sie unternehmen, wenn Sitzungen nicht auf Ihrem Server funktionieren?May 03, 2025 am 12:19 AM

Der Serversitzungsausfall kann durch Befolgen der Schritte gelöst werden: 1. Überprüfen Sie die Serverkonfiguration, um sicherzustellen, dass die Sitzung korrekt festgelegt wird. 2. Überprüfen Sie die Client -Cookies, bestätigen Sie, dass der Browser es unterstützt und korrekt senden. 3. Überprüfen Sie die Speicherdienste wie Redis, um sicherzustellen, dass sie normal arbeiten. 4. Überprüfen Sie den Anwendungscode, um die korrekte Sitzungslogik sicherzustellen. Durch diese Schritte können Konversationsprobleme effektiv diagnostiziert und repariert werden und die Benutzererfahrung verbessert werden.

Welche Bedeutung hat die Funktion Session_start ()?Welche Bedeutung hat die Funktion Session_start ()?May 03, 2025 am 12:18 AM

Session_Start () iscrucialinphPFormAnagingUSSERSIONS.1) ItinitiatesanewSessionifnoneExists, 2) Wiederaufnahmen und 3) setaSessionCookieforContinuityAcrossRequests, aktivierende Anwendungen wie

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

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

Heiße Werkzeuge

EditPlus chinesische Crack-Version

EditPlus chinesische Crack-Version

Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

PHPStorm Mac-Version

PHPStorm Mac-Version

Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

mPDF

mPDF

mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),