Inhaltsverzeichnis
2. Verwenden Sie Pusher für Echtzeit-Rundfunk
Konfigurieren Sie Rundfunk
Rundfunk aktivieren
3. Erstellen Sie das Chat -Modell und die Migration
4. Authentifizierung einrichten
5. Erstellen Sie eine Broadcast -Veranstaltung
6. Erstellen Sie den Chat -Controller
7. Bauen Sie die Frontend (Blade oder Vue)
8. Rennen und testen
Letzte Notizen
Heim PHP-Framework Laravel Wie erstelle ich eine Echtzeit-Chat-Anwendung mit Laravel?

Wie erstelle ich eine Echtzeit-Chat-Anwendung mit Laravel?

Aug 04, 2025 pm 01:03 PM
laravel Live -Chat

Richten Sie Laravel ein und installieren Sie Abhängigkeiten wie Laravel Sanctum und Laravel Echo. 2. Konfigurieren Sie Pusher als Broadcast -Treiber in .Env und aktivieren Sie den BroadcastServiceProvider. 3. Erstellen Sie ein Nachrichtenmodell mit einer Migration, die User_id- und Nachrichtenfelder enthält. 4. Implementieren Sie die Authentifizierung mit dem integrierten System von Laravel. 5. Erstellen Sie ein Messagentialereignis, das implementiert wird, und verwendet ein PresencechanNel für Online -Benutzerverfolgung. 6. Erstellen Sie einen ChatController mit Methoden zum Abrufen und Senden von Nachrichten und übertragen Sie das Nachrichtenereignis. 7. Entwerfen Sie ein Frontend mit Blade oder Vue, integrieren Sie Laravel Echo und hören Sie sich Echtzeit-Events an. 8. Kompilieren Sie Assets, führen Sie den Server aus und testen Sie Echtzeit-Messaging über mehrere Benutzer hinweg. Eine Echtzeit-Chat-Anwendung in Laravel wird erfolgreich mit WebSockets über Pusher und Laravel Echo erstellt, wodurch Sofortnachrichtensendungen und dynamische UI-Updates ermöglicht werden.

Wie erstelle ich eine Echtzeit-Chat-Anwendung mit Laravel?

Der Aufbau einer Echtzeit-Chat-Anwendung mit Laravel ist erreichbar, indem die Backend-Funktionen von Laravel mit Echtzeit-Rundfunk mithilfe von Websockets kombiniert werden. Hier ist eine praktische Anleitung, mit der Sie Schritt für Schritt eine funktionale Echtzeit-Chat-App erstellen können.

Wie erstelle ich eine Echtzeit-Chat-Anwendung mit Laravel?

1. Richten Sie Laravel und Laravel Echo Server ein

Beginnen Sie mit der Erstellung eines neuen Laravel -Projekts:

 Komponist erstellen project laravel/laravel in Echtzeit-Chat
CD Echtzeit-Chat

Installieren Sie Laravel Sanctum für die API-Authentifizierung (bei Verwendung eines SPA) oder verwenden Sie die integrierte Sitzung von Laravel:

Wie erstelle ich eine Echtzeit-Chat-Anwendung mit Laravel?
 Der Komponist benötigt Laravel/Sanctum
PHP Artisan Vendor: Publish -Provider = "Laravel \ Sanctum \ SanctumServiceProvider"
PHP Artisan migrieren

Installieren Sie Laravel Echo und Pusher JS für clientseitige Rundfunk:

 NPM Install-Save Laravel-Echo Pusher-Js

Hinweis: Laravel Echo ermöglicht es Ihrem JavaScript, auf Sendung von Ereignissen von Laravel zu hören.

Wie erstelle ich eine Echtzeit-Chat-Anwendung mit Laravel?

2. Verwenden Sie Pusher für Echtzeit-Rundfunk

Laravel unterstützt mehrere Broadcast -Treiber (Redis, Pusher, Soketi). Pusher ist einer der am einfachsten zu errichtenden Anfänger.

Konfigurieren Sie Rundfunk

In .env , set:

 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 in config/broadcasting.php sicher, dass die Pusher -Einstellungen korrekt sind.

Rundfunk aktivieren

Überzeugen Sie diese Linie in bootstrap/app.php :

 App \ Providers \ BroadcastServiceProvider :: Klasse,

3. Erstellen Sie das Chat -Modell und die Migration

Generieren Sie ein Message :

 PHP Artisan Make: Model Message -m

In der Migrationsdatei:

 Schema :: Create ('Nachrichten', Funktion (Blueprint $ Tabelle) {
    $ table-> id ();
    $ table-> unsignedBigInteger ('user_id');
    $ table-> text ('meldung');
    $ table-> timestemps ();

    $ table-> fremd ('user_id')-> referenzen ('id')-> on ('user')-> ondelete ('kaskade');
});

Migration ausführen:

 PHP Artisan migrieren

4. Authentifizierung einrichten

Verwenden Sie die integrierte Authentifizierung von Laravel:

 PHP Artisan Make: Auth

Für Laravel 8 müssen Sie möglicherweise laravel/ui verwenden:

 Komponist benötigt Laravel/UI
PHP Artisan UI Vue --Auth
NPM Run Dev

5. Erstellen Sie eine Broadcast -Veranstaltung

Erstellen Sie eine neue Veranstaltung:

 PHP Artisan Make: Event Messageent

app/Events/MessageSent.php bearbeiten:

 <? 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;
Verwenden Sie App \ Models \ Message;

Klassenmeldung implementiert Sollte Breadcast
{
    Verwenden Sie Versand, Interactswithsockets, serializesModels;

    öffentliche $ message;

    Öffentliche Funktion __construct (Nachricht $ message)
    {
        $ this-> message = $ message;
    }

    öffentliche Funktion Broadcaston ()
    {
        Neue Presencechannel zurückgeben (&#39;Chat&#39;);
    }

    öffentliche Funktion BroadcastWith ()
    {
        zurückkehren [
            &#39;id&#39; => $ this-> message-> id,
            &#39;user_id&#39; => $ this-> message-> user_id,
            &#39;meldung&#39; => $ this-> message-> meldung,
            &#39;created_at&#39; => $ this-> message-> erstellt_at,
        ];
    }
}

Mithilfe von PresenceChannel können Sie sehen, wer online ist. Sie können auch PrivateChannel oder Channel je nach Ihren Anforderungen verwenden.


6. Erstellen Sie den Chat -Controller

 Php Artisan Make: Controller Chatcontroller

Fügen Sie Methoden hinzu, um Nachrichten abzurufen und eine Nachricht zu senden:

 Verwenden Sie App \ Models \ Message;
Verwenden Sie App \ Ereignisse \ messagesent;

öffentliche Funktionen FetchMessages ()
{
    Rückgabenachricht :: mit (&#39;user&#39;)-> last ()-> limit (100)-> get ()-> reverse ();
}

Öffentliche Funktion sendMessage (Anfrage $ Anfrage)
{
    $ message = auth ()-> user ()-> message ()-> create ([
        &#39;meldung&#39; => $ request-> meldung
    ]);

    Broadcast (New Message ($ message))-> toothers ();

    return [&#39;Status&#39; => &#39;Nachricht gesendet!&#39;];
}

Fügen Sie die Routen in routes/web.php hinzu:

 Verwenden Sie App \ http \ Controller \ ChatController;

Route :: Middleware ([&#39;Auth&#39;])-> Gruppe (function () {
    Route :: get (&#39;/chat&#39;, function () {
        Rückgabeansicht (&#39;Chat&#39;);
    });
    Route :: get (&#39;/message&#39;, [chatController :: class, &#39;fetchMessages&#39;]);
    Route :: post (&#39;/messages&#39;, [chatController :: class, &#39;sendMessage&#39;]);
});

7. Bauen Sie die Frontend (Blade oder Vue)

Erstellen Sie einen einfachen chat.blade.php :

 <div id = "App">
    <ul id = "message">
        <li v-für = "Nachricht in Nachrichten">
            <strong>@{{message.user.name}}: </strong>
            @{{message.message}}
        </li>
    </ul>

    <Eingabe
        V-Model = "NewMessage"
        @keyup.enter = "sendMessage"
        Placeholder = "Geben Sie eine Nachricht ein ..."
        Typ = "Text"
    >
</div>

<script src = "{{asset (&#39;js/app.js&#39;)}}"> </script>

Initialisieren Sie Laravel -Echo in resources/js/bootstrap.js oder app.js :

 Import echo von &#39;laravel-echo&#39;;

window.pusher = required (&#39;pusher-js&#39;);

window.echo = new echo ({{{
    Sender: &#39;Pusher&#39;,
    Schlüssel: process.env.mix_pusher_app_key,
    Cluster: process.env.mix_pusher_app_cluster,
    forcetls: wahr,
    Authendpoint: &#39;/Broadcasting/Auth&#39;,,
});

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 in Ihrer Vue/JS -Logik:

 const app = new Vue ({{{
    EL: &#39;#App&#39;,
    Daten: {
        Nachrichten: [],
        NewMessage: &#39;&#39;
    },
    montiert () {
        this.fetchMessages ();

        window.echo.join (&#39;chat&#39;)
            .here ((Benutzer) => {
                console.log (&#39;Benutzer online:&#39;, Benutzer);
            })
            .Listen (&#39;messagent&#39;, (e) => {
                this.messages.push (e.message);
            });
    },
    Methoden: {
        fetchMessages () {
            axios.get (&#39;/message&#39;). Dann (response => {
                this.messages = response.data;
            });
        },
        Nachricht senden() {
            axios.post (&#39;/message&#39;, {message: this.newMessage})
                .then (response => {
                    this.newmessage = &#39;&#39;;
                });
        }
    }
});

8. Rennen und testen

Vermögenswerte kompilieren:

 NPM Run Dev

Starten Sie den Laravel Development Server:

 PHP Artisan Serve

Öffnen Sie zwei Browserfenster, melden Sie sich als verschiedene Benutzer an und testen Sie Echtzeit-Nachrichten.


Letzte Notizen

  • Sichern Sie sich zur Produktion mit Authentifizierung.
  • Berücksichtigen Sie die Rate -Beschränkung beim Senden von Nachrichten.
  • Verwenden Sie PresenceChannel , um Online-Benutzer oder PrivateChannel für 1-zu-1-Chats anzuzeigen.
  • Für selbst gehostete WebSocket-Server sollten Sie Soketi anstelle von Pusher verwenden.

Das Erstellen einer Echtzeit-Chat-App in Laravel ist nicht übermäßig komplex, wenn Sie den Fluss verstehen:
Der Benutzer sendet eine Nachricht → Controller speichert es → Ereignisübertragung IT → Echo hört und aktualisiert die Benutzeroberfläche.

Mit Laravel Echo und Pusher wird der größte Teil der harten Arbeit abstrahiert, sodass Sie sich auf UI und Benutzererfahrung konzentrieren können.

Grundsätzlich ist das es-Sie haben einen arbeitenden Echtzeit-Chat.

Das obige ist der detaillierte Inhalt vonWie erstelle ich eine Echtzeit-Chat-Anwendung mit Laravel?. 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

Heiße KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

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.

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

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

PHP-Tutorial
1510
276
Was ist Konfigurationsputz in Laravel? Was ist Konfigurationsputz in Laravel? Jul 27, 2025 am 03:54 AM

Der Konfigurations -Cache von Laravel verbessert die Leistung, indem alle Konfigurationsdateien in eine einzelne Cache -Datei zusammengeführt werden. Das Aktivieren von Konfigurations -Cache in einer Produktionsumgebung kann die E/A -Vorgänge reduzieren und die Analyse bei jeder Anforderung an die Datei -Analyse beschleunigen, wodurch das Laden der Konfiguration beschleunigt wird. 1. Es sollte aktiviert werden, wenn die Anwendung bereitgestellt wird, die Konfiguration stabil ist und keine häufigen Änderungen erforderlich sind. 2. Nachdem Sie die Konfiguration ändern können, müssen Sie PhPartiSanconFig: Cache erneut ausführen, um wirksam zu werden. 3. Vermeiden Sie die Verwendung dynamischer Logik oder Verschluss, die von Laufzeitbedingungen in der Konfigurationsdatei abhängen. 4. Bei Problembehebungsproblemen sollten Sie zuerst den Cache löschen, die .env-Variablen und den Umrand-Cache überprüfen.

Wie implementieren Sie ein Überweisungssystem in Laravel? Wie implementieren Sie ein Überweisungssystem in Laravel? Aug 02, 2025 am 06:55 AM

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.

Wie führe ich ein Laravel -Projekt aus? Wie führe ich ein Laravel -Projekt aus? Jul 28, 2025 am 04:28 AM

CheckPhp> = 8.1, Komponist und Webserver; 2.CloneOrCreateProjectandruncompoSerinstall; 3.Copy.Env.Exampleto.EnvandrunphPartisanny : generieren; 4.setDatabasecredentialsin.envandrunphPartisanmigrate-seed; 5.StartServerWithPartisanServe; 6.OptionallyRunnpminpmin

Wie säen ich eine Datenbank in Laravel? Wie säen ich eine Datenbank in Laravel? Jul 28, 2025 am 04:23 AM

Erstellen einer Seaskerdatei: Verwenden Sie PhPartisanMake: SeaseruSereDer, um die Säatorklasse zu generieren, und fügen Sie Daten über die Modellfabrik- oder Datenbankabfrage in der Run -Methode ein. 2. Rufen Sie einen anderen Säator in Databaseseeder an: Registrieren Sie den Benutzerseeder, Postseeder usw. Um sicherzustellen, dass die Abhängigkeit korrekt ist. 3. Ausführen von Sämaschinen: Führen Sie PhPartisandB aus: Saatgut, um alle registrierten Säter auszuführen, oder verwenden Sie Phpartisanmigrate: frisch-SEED, um die Daten zurückzusetzen und nachzufüllen; 4

Wie baue ich eine REST -API mit Laravel? Wie baue ich eine REST -API mit Laravel? Jul 30, 2025 am 03:41 AM

Erstellen Sie ein neues Laravel -Projekt und starten Sie den Service. 2. Generieren Sie das Modell, die Migration und den Controller und führen Sie die Migration aus; 3. Definieren Sie die erholsame Route in Routen/api.php; V. 5. Verwenden Sie Postbote oder Curl, um die API -Funktion zu testen. 6. Fügen Sie optional die API -Authentifizierung durch Heiligtum hinzu; Erhalten Sie schließlich eine klare Struktur, vollständig und erweiterbar Laravelrestapi, geeignet für praktische Anwendungen.

Wie implementieren Sie Feature -Flags in einer Laravel -App? Wie implementieren Sie Feature -Flags in einer Laravel -App? Jul 30, 2025 am 01:45 AM

ChooseseafatureFlagstrategyuchasconfig-basierte, datenbankgetriebene, orthird-partytools-ähnliche Flagsmith

Was sind Repository -Verträge in Laravel? Was sind Repository -Verträge in Laravel? Aug 03, 2025 am 12:10 AM

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.

Was ist eloquentes Orm in Laravel? Was ist eloquentes Orm in Laravel? Jul 29, 2025 am 03:50 AM

Eloquentorm ist das integrierte Relational Mapping-System von Laravel. Sie betreibt die Datenbank über PHP -Syntax anstelle von nativem SQL, wodurch der Code prägnanter und leicht zu warten ist. 1. Jede Datentabelle entspricht einer Modellklasse, und jeder Datensatz existiert als Modellinstanz. 2. Übernehmen Sie den aktiven Datensatzmodus, und die Modellinstanz kann selbst gespeichert oder aktualisiert werden. 3.. Support -Stapelzuweisung und das $ fillbare Attribut müssen im Modell definiert werden, um die Sicherheit zu gewährleisten. 4. Bieten Sie eine starke Beziehungsunterstützung wie eins zu eins, eins zu viele, viele zu viele usw., und Sie können über Methodenaufrufe auf die zugehörigen Daten zugreifen. 5. Integrierter Abfragekonstruktor, wo OrderBy und andere Methoden als Ketten bezeichnet werden können, um Abfragen zu erstellen; 6. Unterstützen Sie Zubehör und Modifikatoren, die die Nummer beim Erhalten oder Einlegen von Attributen formatieren können.

See all articles