Laravel Broadcasting предоставляет мощный и удобный способ реализации функциональности реального времени в вашем Laravel-приложении. Это позволяет вам легко отправлять события в реальном времени на клиентские приложения, такие как веб-страницы, мобильные приложения или даже десктопные приложения. В этом введении мы рассмотрим, как начать работу с Laravel Broadcasting.
1. Установка Laravel Broadcasting
Для начала убедитесь, что у вас установлен Laravel и Composer. Создайте новый проект Laravel, если у вас его еще нет:
composer create-project --prefer-dist laravel/laravel broadcasting-example
Перейдите в директорию проекта:
cd broadcasting-example
Laravel Broadcasting уже включен в Laravel по умолчанию, поэтому вам не нужно устанавливать дополнительные пакеты.
2. Настройка Broadcasting
В файле .env
выберите драйвер broadcasting, который вы хотите использовать. Laravel поддерживает несколько драйверов, включая pusher
, redis
, log
(для логгирования событий) и другие.
BROADCAST_DRIVER=pusher
3. Создание события
События в Laravel Broadcasting представляют собой классы, которые содержат информацию о событии, которое произошло. Чтобы создать событие, используйте команду make:event
:
php artisan make:event OrderShipped
Это создаст класс OrderShipped
в директории app/Events
. В этом классе вы можете определить данные, которые будут переданы клиентам:
<?php
namespace App\Events;
use Illuminate\Broadcasting\Channel;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Broadcasting\PresenceChannel;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;
class OrderShipped implements ShouldBroadcast
{
use Dispatchable, InteractsWithSockets, SerializesModels;
public $order;
public function __construct($order)
{
$this->order = $order;
}
public function broadcastOn()
{
return new Channel('orders');
}
}
4. Отправка события
Чтобы отправить событие, используйте метод event
:
event(new OrderShipped($order));
5. Настройка клиента
На стороне клиента вам нужно будет настроить соединение с сервером broadcasting. Это может быть сделано с помощью JavaScript SDK для выбранного вами драйвера broadcasting. Например, для Pusher:
import Echo from 'laravel-echo';
window.Pusher = require('pusher-js');
window.Echo = new Echo({
broadcaster: 'pusher',
key: 'your-pusher-key',
cluster: 'your-pusher-cluster',
encrypted: true
});
6. Прослушивание событий на клиенте
На стороне клиента вы можете прослушивать события, используя метод listen
:
Echo.channel('orders')
.listen('OrderShipped', (e) => {
console.log(e.order);
});
Заключение
Laravel Broadcasting предоставляет мощный и гибкий способ реализации функциональности реального времени в вашем Laravel-приложении. Это позволяет вам легко отправлять события в реальном времени на клиентские приложения, обеспечивая высокое взаимодействие и отзывчивость вашего приложения. Для более глубокого погружения в Laravel Broadcasting рекомендуется изучить официальную документацию.
0 комментариев