WebsocketEvent.php 775 B

1234567891011121314151617181920212223242526272829
  1. <?php
  2. namespace App\Broadcasting\Events;
  3. use App\Broadcasting\Entity\WebsocketEventData;
  4. use Illuminate\Broadcasting\Channel;
  5. use Illuminate\Broadcasting\InteractsWithSockets;
  6. use Illuminate\Contracts\Broadcasting\ShouldBroadcastNow;
  7. use Illuminate\Foundation\Events\Dispatchable;
  8. use Illuminate\Queue\SerializesModels;
  9. final class WebsocketEvent implements ShouldBroadcastNow, WebsocketEventInterface
  10. {
  11. use Dispatchable, InteractsWithSockets, SerializesModels;
  12. public function __construct(
  13. private readonly WebsocketEventData $dto
  14. ) {}
  15. public function broadcastOn(): Channel
  16. {
  17. return new Channel($this->dto->channelName());
  18. }
  19. public function broadcastWith(): array
  20. {
  21. return ['data' => $this->dto->data];
  22. }
  23. }