O real-time aplicație de chat este un exemplu excelent al modului în care WebSocket poate revoluționa real-time comunicarea interactivă pe web. În acest articol, vom parcurge construirea unei aplicații de chat simplă folosind Laravel și integrând WebSocket folosind pentru laravel-websockets
package a oferi utilizatorilor experiențe de comunicare receptive și interactive.
Obiectivele aplicației
Vom construi o real-time aplicație de chat cu următoarele caracteristici:
Trimiteți și primiți mesaje instantaneu: utilizatorii pot trimite și primi mesaje instantaneu, fără a fi nevoie să reîmprospăteze pagina.
Lista de utilizatori online: aplicația va afișa o listă de utilizatori online și starea lor de chat.
Trimiteți imagini și fișiere: utilizatorii pot partaja imagini și fișiere în chat.
Noțiuni introductive de instalare și configurare
Pentru a începe, trebuie să instalăm laravel-websockets
package și să îl configuram pentru a se integra WebSocket cu Laravel. Urmați acești pași:
Instalați laravel-websockets
package: Începeți prin instalarea package utilizării Composer.
composer require pusher/pusher-php-server
Publicați fișierul de configurare: după instalare, publicați fișierul de configurare pentru a personaliza setările.
php artisan vendor:publish --tag=websockets-config
Run migration: Creați tabelele de bază de date necesare pentru WebSocket.
php artisan migrate
Porniți WebSocket serverul: Lansați WebSocket serverul pentru a gestiona real-time conexiunile
php artisan websockets:serve
Construirea interfeței cu utilizatorul
Vom crea o interfață de utilizator simplă folosind HTML, CSS și JavaScript pentru a afișa lista de mesaje, caseta de introducere și lista de utilizatori online.
<!-- 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>
Integrarea WebSocket și Broadcasting
Vom folosi Laravel Broadcasting pentru a integra WebSocket cu aplicația.
Instalare Pusher: Instalați pusher/pusher-php-server
package pentru a utiliza Pusher ca Broadcasting driver.
composer require pusher/pusher-php-server
Configurare Broadcasting: În config/broadcasting.php
fișier, configurați driverul și furnizați-vă Pusher acreditările.
'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,
],
],
Creați un eveniment și difuzați: creați un eveniment ChatMessageSent și difuzați-l atunci când un utilizator trimite un mesaj.
// app/Events/ChatMessageSent.php
public function broadcastOn()
{
return new Channel('chat');
}
Script JavaScript: utilizați JavaScript pentru a asculta evenimentele de pe server și pentru a actualiza interfața cu utilizatorul.
// resources/js/app.js
require('./bootstrap');
import Vue from 'vue';
import Chat from './components/Chat.vue';
const app = new Vue({
el: '#app',
components: {
Chat
}
});
Concluzie
Prin finalizarea acestui tutorial, ați creat cu succes o real-time aplicație de chat folosind WebSocket în Laravel. Utilizatorii pot trimite și primi mesaje instantaneu, iar tu ai văzut cum WebSocket oferă o experiență de comunicare receptivă și interactivă.