Real-time obvestila so običajna funkcija v spletnih aplikacijah za zagotavljanje takojšnjih opozoril in posodobitev uporabnikom brez potrebe po osveževanju strani. V Laravel, lahko preprosto integrirate Redis za real-time učinkovito implementacijo obvestil. Redis bo uporabljen kot čakalna vrsta za takojšnjo dostavo obvestil s strežnika odjemalcu.
Namestitev Redis in Laravel
Če želite začeti, namestite Redis na svoj strežnik in namestite predis/predis
paket Laravel prek Composerja.
composer require predis/predis
Integracija Real-time obvestil
Konfigurirajte čakalno vrsto v Laravel
Najprej konfigurirajte čakalno vrsto tako, da v datoteko Laravel dodate informacije. Redis .env
QUEUE_CONNECTION=redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
Ustvarite Event
Ustvarite event vhod Laravel za pošiljanje real-time obvestil.
php artisan make:event NewNotificationEvent
Nato odprite app/Events/NewNotificationEvent.php
datoteko in prilagodite event vsebino.
use Illuminate\Broadcasting\Channel;
use Illuminate\Contracts\Broadcasting\ShouldBroadcastNow;
use Illuminate\Queue\SerializesModels;
class NewNotificationEvent implements ShouldBroadcastNow
{
use SerializesModels;
public $message;
public function __construct($message)
{
$this->message = $message;
}
public function broadcastOn()
{
return new Channel('notifications');
}
}
Konfiguriraj Broadcast Driver
Odprite config/broadcasting.php
datoteko in uporabite redis
gonilnik za implementacijo real-time obvestil z Redis.
'connections' => [
'redis' => [
'driver' => 'redis',
'connection' => 'default',
],
// ...
],
Pošlji Real-time obvestilo
Ko morate poslati real-time obvestilo, uporabite, ki event ste ga pravkar ustvarili v krmilniku ali ponudniku storitev.
use App\Events\NewNotificationEvent;
public function sendNotification()
{
$message = 'You have a new notification!';
event(new NewNotificationEvent($message));
}
Obravnava Real-time obvestila na odjemalcu
Na koncu obdelajte real-time obvestilo na odjemalcu z uporabo JavaScripta in Laravel Echo. Prepričajte se, da ste namestili in konfigurirali Laravel Echo za svojo aplikacijo.
// Connect to the 'notifications' channel
const channel = Echo.channel('notifications');
// Handle the event when receiving a real-time notification
channel.listen('.NewNotificationEvent',(notification) => {
alert(notification.message);
});
Zaključek
Integracija Redis in Laravel omogoča preprosto uvajanje real-time obvestil v vašo spletno aplikacijo. Ko pride do novega obvestila, ga aplikacija pošlje prek Redis, odjemalec pa obvestilo prejme takoj, ne da bi bilo treba osvežiti stran. To izboljša uporabniško izkušnjo in poveča interaktivnost aplikacije.