En real-time chat-applikasjon er et utmerket eksempel på hvordan WebSocket kan revolusjonere real-time interaktiv kommunikasjon på nettet. I denne artikkelen går vi gjennom å bygge en enkel chat-applikasjon ved å bruke Laravel og integrere WebSocket ved å bruke laravel-websockets
package for å levere responsive og interaktive kommunikasjonsopplevelser til brukere.
Mål for søknaden
Vi vil bygge en real-time chat-applikasjon med følgende funksjoner:
Send og motta meldinger umiddelbart: Brukere kan sende og motta meldinger umiddelbart uten å måtte oppdatere siden.
Online brukerliste: Applikasjonen vil vise en liste over online brukere og deres chat-status.
Send bilder og filer: Brukere kan dele bilder og filer i chatten.
Komme i gang med installasjon og konfigurasjon
For å komme i gang må vi installere laravel-websockets
package og konfigurere den til å integreres WebSocket med Laravel. Følg disse instruksjonene:
Installer laravel-websockets
package: Begynn med å installere package bruken Composer.
composer require pusher/pusher-php-server
Publiser konfigurasjonsfilen: Etter installasjonen publiserer du konfigurasjonsfilen for å tilpasse innstillingene.
php artisan vendor:publish --tag=websockets-config
Kjør migration: Lag de nødvendige databasetabellene for WebSocket.
php artisan migrate
Start WebSocket server: Start WebSocket serveren for å håndtere real-time tilkoblinger
php artisan websockets:serve
Bygge brukergrensesnittet
Vi vil lage et enkelt brukergrensesnitt ved å bruke HTML, CSS og JavaScript for å vise meldingslisten, inndataboksen og listen over online-brukere.
<!-- 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>
Integrering WebSocket og Broadcasting
Vi vil bruke Laravel Broadcasting til å integrere WebSocket med applikasjonen.
Installer Pusher: Installer pusher/pusher-php-server
package for å bruke Pusher som Broadcasting driver.
composer require pusher/pusher-php-server
Konfigurer Broadcasting: config/broadcasting.php
Konfigurer driveren i filen og oppgi Pusher legitimasjonen din.
'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,
],
],
Opprett en hendelse og kringkast: Opprett en ChatMessageSent-hendelse og kringkast den når en bruker sender en melding.
// app/Events/ChatMessageSent.php
public function broadcastOn()
{
return new Channel('chat');
}
JavaScript-skript: Bruk JavaScript til å lytte etter hendelser fra serveren og oppdatere brukergrensesnittet.
// resources/js/app.js
require('./bootstrap');
import Vue from 'vue';
import Chat from './components/Chat.vue';
const app = new Vue({
el: '#app',
components: {
Chat
}
});
Konklusjon
Ved å fullføre denne opplæringen har du lykkes med å bygge et real-time chatteprogram ved å bruke WebSocket i Laravel. Brukere kan sende og motta meldinger umiddelbart, og du har sett hvordan WebSocket gir en responsiv og interaktiv kommunikasjonsopplevelse.