Теперь, когда мы закончили с добавлением маршрутов, аутентификации и конфигурации базы данных и создали необходимые контроллеры, мы можем добавить код, позволяющий общаться между
фронтенд и бэкэнд в режиме реального времени. Во-первых, нам нужно создать класс события, чтобы мы могли вызывать функцию события для трансляции события, которое вызывается в MessageController.
Для этого мы запускаем команду:
php artisan make:event MessageSentДалее находим файл
Events/MessageSent.php
и заменяем его содержимое следующим кодом:
namespace App\Events; use App\Models\User; use App\Models\Message; use Illuminate\Broadcasting\Channel; use Illuminate\Queue\SerializesModels; use Illuminate\Broadcasting\PrivateChannel; use Illuminate\Broadcasting\PresenceChannel; use Illuminate\Foundation\Events\Dispatchable; use Illuminate\Broadcasting\InteractsWithSockets; use Illuminate\Contracts\Broadcasting\ShouldBroadcast; class MessageSent implements ShouldBroadcast { use InteractsWithSockets, SerializesModels; /** * User that sent the message * * @var User */ public $user; /** * Message details * * @var Message */ public $message; /** * Create a new event instance. * * @return void */ public function __construct(User $user, Message $message) { $this->user = $user; $this->message = $message; } /** * Get the channels the event should broadcast on. * * @return Channel|array */ public function broadcastOn() { return new Channel('chat'); } public function broadcastAs() { return 'MessageSent'; } }