Спростіть повідомлення в реальному часі за допомогою анонімних трансляцій у Laravel

Перекладено ШІ
Оригінал: Laravel News
Оновлено: 10 квітня, 2025
Laravel впроваджує анонімні трансляції, спрощуючи процес надсилання реальних оновлень на ваш фронтенд без необхідності створювати окремі класи подій. Дізнайтеся, як ця нова функція може пришвидшити розробку в реальному часі, дозволяючи вам легко реагувати на зміни в додатку

Laravel представляє анонімні трансляції, які спрощують процес відправки оновлень у реальному часі на фронтенд без необхідності створення окремих класів подій.

// Відправка базової анонімної трансляції
Broadcast::on('my-channel')->send();

Цей спрощений API дозволяє швидко реалізовувати функції в реальному часі, коли вам потрібні спонтанні сповіщення без складнощів, пов'язаних з повною структурою класу подій.

// Ім'я події та дані
Broadcast::on('orders.' . $order->id)
    ->as('OrderPlaced')
    ->with(['id' => $order->id, 'total' => $order->total])
    ->send();

Система надає гнучкість у виборі типів каналів відповідно до ваших вимог до автентифікації:

// Приватна трансляція каналу
Broadcast::private('user.' . $userId)->send();
 
// Трансляція каналу присутності
Broadcast::presence('team-chat')->send();

Ви можете контролювати час і цільову аудиторію за допомогою додаткових методів:

Broadcast::on('notifications')->sendNow();
 
Broadcast::on('chat')->toOthers()->send();

На фронтенді ви будете слухати ці події за допомогою Laravel Echo, як зазвичай:

Echo.channel('orders.' + orderId)
    .listen('.OrderPlaced', (data) => {
        showNotification('Замовлення розміщено!', data);
    });

Анонімні трансляції особливо ефективні для короткочасних сповіщень, таких як індикатори набору тексту, оновлення статусів, тригери оновлення інтерфейсу та прості сповіщення, які не потребують довгострокового зберігання. Видаляючи потребу в створенні формальних класів подій для кожного сповіщення, ця функція пришвидшує розробку та зменшує обсяг коду, що робить функції в реальному часі більш доступними у ваших Laravel-додатках