Streaming.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. namespace App\Events;
  3. use App\Enums\Status;
  4. use App\Models\Message;
  5. use Illuminate\Broadcasting\InteractsWithSockets;
  6. use Illuminate\Broadcasting\PrivateChannel;
  7. use Illuminate\Contracts\Broadcasting\ShouldBroadcastNow;
  8. //use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
  9. use Illuminate\Foundation\Events\Dispatchable;
  10. use Illuminate\Queue\SerializesModels;
  11. //class Streaming implements ShouldBroadcast
  12. class Streaming implements ShouldBroadcastNow
  13. {
  14. use Dispatchable, InteractsWithSockets, SerializesModels;
  15. public readonly string $chunk;
  16. public readonly int $index;
  17. public readonly Status $status;
  18. /**
  19. * Create a new event instance.
  20. */
  21. public function __construct(private readonly Message $message, int $index, string $chunk, Status $status)
  22. {
  23. $this->index = $index;
  24. $this->chunk = $chunk;
  25. $this->status = $status;
  26. }
  27. /**
  28. * Get the channels the event should broadcast on.
  29. *
  30. * @return array<int, \Illuminate\Broadcasting\Channel>
  31. */
  32. public function broadcastOn(): array
  33. {
  34. return [new PrivateChannel('App.Models.Message.' . $this->message->id)];
  35. }
  36. public function broadcastAs(): string
  37. {
  38. return 'Streaming';
  39. }
  40. }