Eine real-time Chat-Anwendung ist ein hervorragendes Beispiel dafür, wie die interaktive Kommunikation im Web WebSocket revolutioniert werden kann. real-time In diesem Artikel gehen wir Schritt für Schritt durch die Erstellung einer einfachen Chat-Anwendung mit Laravel und deren Integration WebSocket, laravel-websockets
package um Benutzern reaktionsfähige und interaktive Kommunikationserlebnisse zu bieten.
Ziele der Anwendung
Wir werden eine real-time Chat-Anwendung mit den folgenden Funktionen erstellen:
Nachrichten sofort senden und empfangen: Benutzer können Nachrichten sofort senden und empfangen, ohne die Seite aktualisieren zu müssen.
Online-Benutzerliste: Die Anwendung zeigt eine Liste der Online-Benutzer und deren Chat-Status an.
Bilder und Dateien senden: Benutzer können Bilder und Dateien im Chat teilen.
Erste Schritte mit Installation und Konfiguration
Um zu beginnen, müssen wir das installieren und für laravel-websockets
package die Integration konfigurieren. Folge diesen Schritten: WebSocket Laravel
Installieren Sie laravel-websockets
package: Beginnen Sie mit der Installation package von Composer.
composer require pusher/pusher-php-server
Veröffentlichen Sie die Konfigurationsdatei: Veröffentlichen Sie nach der Installation die Konfigurationsdatei, um die Einstellungen anzupassen.
php artisan vendor:publish --tag=websockets-config
Ausführen migration: Erstellen Sie die erforderlichen Datenbanktabellen für WebSocket.
php artisan migrate
Server starten WebSocket: Starten Sie den WebSocket Server, um real-time Verbindungen zu verwalten
php artisan websockets:serve
Erstellen der Benutzeroberfläche
Wir erstellen eine einfache Benutzeroberfläche mit HTML, CSS und JavaScript, um die Nachrichtenliste, das Eingabefeld und die Liste der Online-Benutzer anzuzeigen.
<!-- resources/views/chat.blade.php -->
<div id="app">
<div class="chat-container">
<div class="chat-box">
<div class="chat-messages">
<div class="message" v-for="message in messages":key="message.id">
{{ message.user }}: {{ message.content }}
</div>
</div>
<div class="input-box">
<input v-model="newMessage" @keydown.enter="sendMessage" placeholder="Enter your message...">
</div>
</div>
</div>
</div>
Integrieren WebSocket und Broadcasting
Wir werden es verwenden Laravel Broadcasting, um es in die Anwendung zu integrieren WebSocket.
Installieren Pusher: Installieren Sie das, um es als Treiber pusher/pusher-php-server
package zu verwenden. Pusher Broadcasting
composer require pusher/pusher-php-server
Konfigurieren Broadcasting: Konfigurieren Sie in der config/broadcasting.php
Datei den Treiber und geben Sie Ihre Pusher Anmeldeinformationen ein.
'pusher' => [
'driver' => 'pusher',
'key' => env('PUSHER_APP_KEY'),
'secret' => env('PUSHER_APP_SECRET'),
'app_id' => env('PUSHER_APP_ID'),
'options' => [
'cluster' => env('PUSHER_APP_CLUSTER'),
'encrypted' => true,
],
],
Erstellen Sie ein Ereignis und senden Sie es: Erstellen Sie ein ChatMessageSent-Ereignis und senden Sie es, wenn ein Benutzer eine Nachricht sendet.
// app/Events/ChatMessageSent.php
public function broadcastOn()
{
return new Channel('chat');
}
JavaScript-Skript: Verwenden Sie JavaScript, um auf Ereignisse vom Server zu warten und die Benutzeroberfläche zu aktualisieren.
// resources/js/app.js
require('./bootstrap');
import Vue from 'vue';
import Chat from './components/Chat.vue';
const app = new Vue({
el: '#app',
components: {
Chat
}
});
Abschluss
Durch den Abschluss dieses Tutorials haben Sie erfolgreich eine real-time Chat-Anwendung WebSocket mit in erstellt Laravel. Benutzer können Nachrichten sofort senden und empfangen, und Sie haben gesehen, wie WebSocket eine reaktionsfähige und interaktive Kommunikationserfahrung entsteht.