Real-time Laravel と による通知 Redis

Real-time 通知は Web アプリケーションの一般的な機能で、ページを更新せずにユーザーに即時のアラートと更新を提供します。 では、通知を効率的に 実装するために Laravel 簡単に統合できます 。 サーバーからクライアントに通知を即座に配信するためのキューとして使用されます。 Redis real-time Redis

インストール Redis と Laravel

まず、 Redis サーバーにインストールし、 Composer 経由で predis/predis パッケージをインストールします。 Laravel

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 と Echo を使用してクライアント上で通知を処理します Laravel。 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 と、 Web アプリケーションに通知を Laravel 簡単に展開できるようになります。 real-time 新しい通知がある場合、アプリケーションは を介し​​て通知を送信し Redis 、クライアントはページを更新することなく即座に通知を受け取ります。 これにより、ユーザー エクスペリエンスが向上し、アプリケーションの対話性が強化されます。