Real-time notificações são um recurso comum em aplicativos da web para fornecer alertas instantâneos e atualizações aos usuários sem a necessidade de atualizar a página. No Laravel, você pode integrar facilmente Redis para implementar real-time notificações com eficiência. Redis será usado como uma fila para enviar notificações do servidor para o cliente instantaneamente.
Instalando Redis e Laravel
Para começar, instale Redis em seu servidor e instale o predis/predis
pacote Laravel via Composer.
composer require predis/predis
Integrando Real-time Notificações
Configurar fila em Laravel
Primeiro, configure a fila Laravel adicionando as Redis informações ao .env
arquivo.
QUEUE_CONNECTION=redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
Criar um Event
Crie um event in Laravel para enviar real-time notificações.
php artisan make:event NewNotificationEvent
Em seguida, abra o app/Events/NewNotificationEvent.php
arquivo e personalize o event conteúdo.
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');
}
}
configurar Broadcast Driver
Abra o config/broadcasting.php
arquivo e use o redis
driver para implementar real-time as notificações com extensão Redis.
'connections' => [
'redis' => [
'driver' => 'redis',
'connection' => 'default',
],
// ...
],
Enviar Real-time Notificação
Quando precisar enviar uma real-time notificação, use o que event você acabou de criar em um controlador ou provedor de serviços.
use App\Events\NewNotificationEvent;
public function sendNotification()
{
$message = 'You have a new notification!';
event(new NewNotificationEvent($message));
}
Lidar com Real-time notificação no cliente
Por fim, manipule a real-time notificação no cliente usando JavaScript e Laravel Echo. Certifique-se de ter instalado e configurado Laravel o Echo para seu aplicativo.
// 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);
});
Conclusão
A integração Redis e Laravel permite que você implante real-time notificações facilmente em seu aplicativo da web. Quando houver uma nova notificação, o aplicativo enviará por Redis, e o cliente receberá a notificação instantaneamente sem a necessidade de atualizar a página. Isso melhora a experiência do usuário e aumenta a interatividade do aplicativo.