Notificaciones broadcast
Introducción
De forma predeterminada, Filament enviará notificaciones flash a través de la sesión de Laravel. Sin embargo, es posible que desees que tus notificaciones se "transmitan" (broadcast) a un usuario en tiempo real. Esto podría usarse para enviar una notificación de éxito temporal desde un trabajo en cola después de que haya terminado de procesarse.
Tenemos una integración nativa con Laravel Echo. Asegúrate de que Echo esté instalado, así como una integración de websockets del lado del servidor como Pusher.
Enviar notificaciones broadcast
Hay varias formas de enviar notificaciones broadcast, dependiendo de cuál te convenga más.
Puedes usar nuestra API fluida:
use Filament\Notifications\Notification;
$recipient = auth()->user();
Notification::make()
->title('Saved successfully')
->broadcast($recipient);
O, usa el método notify():
use Filament\Notifications\Notification;
$recipient = auth()->user();
$recipient->notify(
Notification::make()
->title('Saved successfully')
->toBroadcast(),
)
Alternativamente, usa una clase de notificación tradicional de Laravel devolviendo la notificación desde el método toBroadcast():
use App\Models\User;
use Filament\Notifications\Notification;
use Illuminate\Notifications\Messages\BroadcastMessage;
public function toBroadcast(User $notifiable): BroadcastMessage
{
return Notification::make()
->title('Saved successfully')
->getBroadcastMessage();
}
Configurar websockets en un panel
El Panel Builder viene con un nivel de soporte incorporado para notificaciones broadcast y de base de datos en tiempo real. Sin embargo, hay una serie de áreas que necesitarás instalar y configurar para conectar todo y hacerlo funcionar.
- Si aún no lo has hecho, lee sobre broadcasting en la documentación de Laravel.
- Instala y configura broadcasting para usar una integración de websockets del lado del servidor como Pusher.
- Si aún no lo has hecho, necesitarás publicar la configuración del paquete Filament:
php artisan vendor:publish --tag=filament-config
- Edita la configuración en
config/filament.phpy descomenta la secciónbroadcasting.echo- asegurándote de que la configuración esté correctamente configurada de acuerdo con tu instalación de broadcasting. - Asegúrate de que las entradas
VITE_*relevantes existan en tu archivo.env. - Limpia las cachés relevantes con
php artisan route:clearyphp artisan config:clearpara asegurar que tu nueva configuración tenga efecto.
Tu panel ahora debería estar conectándose a tu servicio de broadcasting. Por ejemplo, si inicias sesión en la consola de depuración de Pusher, deberías ver una conexión entrante cada vez que cargues una página.