Real-time pranešimai yra įprasta žiniatinklio programų funkcija, suteikianti vartotojams momentinius įspėjimus ir atnaujinimus, nereikia atnaujinti puslapio. Naudodami Laravel, galite lengvai integruoti, Redis kad efektyviai įgyvendintumėte real-time pranešimus. Redis bus naudojama kaip eilė pranešimams iš serverio klientui nedelsiant pristatyti.
Diegimas Redis ir Laravel
Norėdami pradėti, įdiekite Redis savo serveryje ir įdiekite predis/predis
paketą Laravel per Composer.
composer require predis/predis
Real-time Pranešimų integravimas
Konfigūruoti eilę Laravel
Pirmiausia sukonfigūruokite eilę Laravel įtraukdami Redis informaciją į .env
failą.
QUEUE_CONNECTION=redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
Sukurti an Event
Sukurkite event įvestį Laravel, kad galėtumėte siųsti real-time pranešimus.
php artisan make:event NewNotificationEvent
Tada atidarykite app/Events/NewNotificationEvent.php
failą ir tinkinkite event turinį.
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');
}
}
Konfigūruoti Broadcast Driver
Atidarykite config/broadcasting.php
failą ir naudokite redis
tvarkyklę, kad įdiegtumėte real-time pranešimus su Redis.
'connections' => [
'redis' => [
'driver' => 'redis',
'connection' => 'default',
],
// ...
],
Siųsti Real-time pranešimą
Kai reikia išsiųsti real-time pranešimą, naudokite event ką tik sukurtą valdiklį arba paslaugų teikėją.
use App\Events\NewNotificationEvent;
public function sendNotification()
{
$message = 'You have a new notification!';
event(new NewNotificationEvent($message));
}
Tvarkykite Real-time pranešimus klientui
Galiausiai apdorokite real-time kliento pranešimą naudodami „JavaScript“ ir Laravel „Echo“. Įsitikinkite, kad įdiegėte ir sukonfigūravote Laravel „Echo“ savo programai.
// 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);
});
Išvada
Integruoja Redis ir Laravel leidžia lengvai įdiegti real-time pranešimus žiniatinklio programoje. Kai bus naujas pranešimas, programa jį išsiųs per Redis, o klientas gaus pranešimą iškart, nereikės atnaujinti puslapio. Tai pagerina vartotojo patirtį ir padidina programos interaktyvumą.