Real-time Οι ειδοποιήσεις είναι μια κοινή λειτουργία σε εφαρμογές web για την παροχή άμεσων ειδοποιήσεων και ενημερώσεων στους χρήστες χωρίς την ανάγκη ανανέωσης της σελίδας. Στο Laravel, μπορείτε εύκολα να ενσωματώσετε Redis για να εφαρμόσετε real-time αποτελεσματικά τις ειδοποιήσεις. Redis θα χρησιμοποιηθεί ως ουρά για την άμεση παράδοση ειδοποιήσεων από τον διακομιστή στον πελάτη.
Εγκατάσταση Redis και Laravel
Για να ξεκινήσετε, εγκαταστήστε το Redis στον διακομιστή σας και εγκαταστήστε το predis/predis
πακέτο Laravel μέσω του Composer.
composer require predis/predis
Ενσωμάτωση Real-time ειδοποιήσεων
Διαμόρφωση ουράς σε Laravel
Αρχικά, διαμορφώστε την ουρά μέσα Laravel προσθέτοντας τις Redis πληροφορίες στο .env
αρχείο.
QUEUE_CONNECTION=redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
Δημιουργήστε ένα Event
Δημιουργήστε ένα event in Laravel για να στείλετε real-time ειδοποιήσεις.
php artisan make:event NewNotificationEvent
Στη συνέχεια, ανοίξτε το app/Events/NewNotificationEvent.php
αρχείο και προσαρμόστε το event περιεχόμενο.
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');
}
}
Διαμορφώστε Broadcast Driver
Ανοίξτε το config/broadcasting.php
αρχείο και χρησιμοποιήστε το redis
πρόγραμμα οδήγησης για να εφαρμόσετε real-time ειδοποιήσεις με Redis.
'connections' => [
'redis' => [
'driver' => 'redis',
'connection' => 'default',
],
// ...
],
Αποστολή Real-time Ειδοποίησης
Όταν χρειάζεται να στείλετε μια real-time ειδοποίηση, χρησιμοποιήστε το event που μόλις δημιουργήσατε σε έναν ελεγκτή ή πάροχο υπηρεσιών.
use App\Events\NewNotificationEvent;
public function sendNotification()
{
$message = 'You have a new notification!';
event(new NewNotificationEvent($message));
}
Χειριστείτε Real-time την Ειδοποίηση στον Πελάτη
Τέλος, χειριστείτε την real-time ειδοποίηση στον πελάτη χρησιμοποιώντας JavaScript και Laravel Echo. Βεβαιωθείτε ότι έχετε εγκαταστήσει και διαμορφώσει Laravel το Echo για την εφαρμογή σας.
// 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);
});
συμπέρασμα
Ενσωματώνει Redis και Laravel σας επιτρέπει να αναπτύσσετε εύκολα real-time ειδοποιήσεις στην εφαρμογή Ιστού σας. Όταν υπάρξει μια νέα ειδοποίηση, η εφαρμογή θα τη στείλει μέσω Redis, και ο πελάτης θα λάβει την ειδοποίηση αμέσως χωρίς να χρειάζεται να ανανεώσει τη σελίδα. Αυτό βελτιώνει την εμπειρία του χρήστη και ενισχύει τη διαδραστικότητα της εφαρμογής.