Real-time Aviseringar med Laravel och Redis

Real-time aviseringar är en vanlig funktion i webbapplikationer för att ge omedelbara varningar och uppdateringar till användare utan att behöva uppdatera sidan. I Laravel kan du enkelt integrera Redis för att implementera real-time aviseringar effektivt. Redis kommer att användas som en kö för att leverera meddelanden från servern till klienten direkt.

Installera Redis och Laravel

För att komma igång, installera Redis på din server och installera predis/predis paketet Laravel via Composer.

composer require predis/predis

Integrering Real-time av meddelanden

Konfigurera kö in Laravel

Konfigurera först kön Laravel genom att lägga till Redis informationen i .env filen.

QUEUE_CONNECTION=redis  
REDIS_HOST=127.0.0.1  
REDIS_PASSWORD=null  
REDIS_PORT=6379  

Skapa en Event

Skapa en event in Laravel för att skicka real-time aviseringar.

php artisan make:event NewNotificationEvent

Öppna sedan app/Events/NewNotificationEvent.php filen och anpassa event innehållet.

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');  
    }  
}  

Konfigurera Broadcast Driver

Öppna config/broadcasting.php filen och använd redis drivrutinen för att implementera real-time meddelanden med Redis.

'connections' => [  
    'redis' => [  
        'driver' => 'redis',  
        'connection' => 'default',  
    ],  
    // ...  
],  

Skicka Real-time meddelande

När du behöver skicka ett real-time meddelande, använd det event du just skapade i en controller eller tjänsteleverantör.

use App\Events\NewNotificationEvent;  
  
public function sendNotification()  
{  
    $message = 'You have a new notification!';  
    event(new NewNotificationEvent($message));  
}  

Hantera Real-time avisering på klienten

Slutligen, hantera real-time meddelandet på klienten med JavaScript och Laravel Echo. Se till att du har installerat och konfigurerat Laravel Echo för din applikation.

// 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);  
});  

 

Slutsats

Integrerar Redis och Laravel låter dig enkelt distribuera real-time aviseringar i din webbapplikation. När det finns ett nytt meddelande kommer applikationen att skicka det via, Redis och klienten kommer att få meddelandet direkt utan att behöva uppdatera sidan. Detta förbättrar användarupplevelsen och förbättrar applikationens interaktivitet.