Real-time Értesítések Laravel a és Redis

Real-time Az értesítések a webalkalmazások gyakori funkciói, amelyek azonnali figyelmeztetéseket és frissítéseket biztosítanak a felhasználóknak az oldal frissítése nélkül. A alkalmazásban Laravel könnyen integrálható az értesítések hatékony Redis megvalósítása érdekében real-time. Redis sorként fogják használni az értesítések azonnali eljuttatásához a szerverről a klienshez.

Telepítés Redis és Laravel

A kezdéshez telepítse Redis a kiszolgálóra, és telepítse a predis/predis csomagot Laravel a Composeren keresztül.

composer require predis/predis

Real-time Értesítések integrálása

Várólista konfigurálása Laravel

Először állítsa be a sort az információknak a fájlhoz való Laravel hozzáadásával. Redis .env

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

Hozzon létre egy Event

Hozzon létre egy event bejelentkezést az értesítések Laravel küldéséhez real-time.

php artisan make:event NewNotificationEvent

Ezután nyissa meg a app/Events/NewNotificationEvent.php fájlt, és szabja testre a event tartalmat.

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

Beállítás Broadcast Driver

Nyissa meg a config/broadcasting.php fájlt, és használja az illesztőprogramot az értesítések redis implementálásához. real-time Redis

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

Real-time Értesítés küldése

Ha értesítést kell küldenie real-time, használja az event imént létrehozott vezérlőt vagy szolgáltatót.

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

Real-time Az ügyfél értesítéseinek kezelése

Végül kezelje az real-time értesítést az ügyfélen a JavaScript és Laravel az Echo segítségével. Győződjön meg arról, hogy telepítette és konfigurálta Laravel az Echo-t az alkalmazáshoz.

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

 

Következtetés

Integrálja Redis és Laravel lehetővé teszi az értesítések egyszerű telepítését real-time a webalkalmazásban. Ha új értesítés érkezik, az alkalmazás a címen keresztül küldi el Redis, és az ügyfél azonnal megkapja az értesítést anélkül, hogy frissítenie kellene az oldalt. Ez javítja a felhasználói élményt és fokozza az alkalmazás interaktivitását.