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 并 Laravel 允许您 real-time 在 Web 应用程序中轻松部署通知。 当有新的通知时,应用程序会通过 发送 Redis,客户端无需刷新页面即可立即收到通知。 这改善了用户体验并增强了应用程序的交互性。