Een real-time chattoepassing is een uitstekend voorbeeld van hoe interactieve communicatie op internet radicaal WebSocket kan veranderen. real-time In dit artikel laten we zien hoe u een eenvoudige chattoepassing bouwt met Laravel en integreert WebSocket om laravel-websockets
package gebruikers responsieve en interactieve communicatie-ervaringen te bieden.
Doelstellingen van de applicatie
We gaan een real-time chat applicatie bouwen met de volgende features:
Direct berichten verzenden en ontvangen: Gebruikers kunnen direct berichten verzenden en ontvangen zonder de pagina te hoeven vernieuwen.
Online gebruikerslijst: de applicatie toont een lijst met online gebruikers en hun chatstatus.
Afbeeldingen en bestanden verzenden: gebruikers kunnen afbeeldingen en bestanden delen in de chat.
Aan de slag met installatie en configuratie
Om aan de slag te gaan, moeten we het installeren laravel-websockets
package en configureren om te integreren WebSocket met Laravel. Volg deze stappen:
Installeer de laravel-websockets
package: Begin met het installeren van de package using Composer.
composer require pusher/pusher-php-server
Publiceer het configuratiebestand: publiceer na de installatie het configuratiebestand om de instellingen aan te passen.
php artisan vendor:publish --tag=websockets-config
Uitvoeren migration: maak de benodigde databasetabellen voor WebSocket.
php artisan migrate
Start WebSocket server: start de WebSocket server om real-time verbindingen te verwerken
php artisan websockets:serve
De gebruikersinterface bouwen
We zullen een eenvoudige gebruikersinterface maken met behulp van HTML, CSS en JavaScript om de berichtenlijst, het invoervak en de lijst met online gebruikers weer te geven.
<!-- 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>
Integratie WebSocket en Broadcasting
We zullen gebruiken Laravel Broadcasting om te integreren WebSocket met de applicatie.
Installeren Pusher: Installeer de om als driver pusher/pusher-php-server
package te gebruiken. Pusher Broadcasting
composer require pusher/pusher-php-server
Configureren Broadcasting: Configureer de driver in het config/broadcasting.php
bestand en geef uw Pusher inloggegevens op.
'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,
],
],
Een evenement maken en uitzenden: maak een ChatMessageSent-evenement en zend het uit wanneer een gebruiker een bericht verzendt.
// app/Events/ChatMessageSent.php
public function broadcastOn()
{
return new Channel('chat');
}
JavaScript-script: gebruik JavaScript om naar gebeurtenissen van de server te luisteren en de gebruikersinterface bij te werken.
// resources/js/app.js
require('./bootstrap');
import Vue from 'vue';
import Chat from './components/Chat.vue';
const app = new Vue({
el: '#app',
components: {
Chat
}
});
Conclusie
Door deze zelfstudie te voltooien, hebt u met succes een real-time chattoepassing gebouwd met behulp WebSocket van in Laravel. Gebruikers kunnen direct berichten verzenden en ontvangen, en u hebt gezien hoe WebSocket een responsieve en interactieve communicatie-ervaring wordt geboden.