Real-time Ειδοποιήσεις με Laravel και Redis

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, και ο πελάτης θα λάβει την ειδοποίηση αμέσως χωρίς να χρειάζεται να ανανεώσει τη σελίδα. Αυτό βελτιώνει την εμπειρία του χρήστη και ενισχύει τη διαδραστικότητα της εφαρμογής.