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.