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.phpBevor 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}
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
-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
-DebuggKonsole
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!

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

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

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

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.

PHPSSIONSSTARTWITHSession_Start (), was generatesauniquidandcreateSaServerfile;

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.

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.

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


Heiße KI -Werkzeuge

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

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

Undress AI Tool
Ausziehbilder kostenlos

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

EditPlus chinesische Crack-Version
Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

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),
