Wisper.php 995 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  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\Foundation\Events\Dispatchable;
  9. use Illuminate\Queue\SerializesModels;
  10. class Wisper implements ShouldBroadcastNow
  11. {
  12. use Dispatchable, InteractsWithSockets, SerializesModels;
  13. public readonly Status $status;
  14. /**
  15. * Create a new event instance.
  16. */
  17. public function __construct(private readonly Message $message, Status $status)
  18. {
  19. $this->status = $status;
  20. }
  21. /**
  22. * Get the channels the event should broadcast on.
  23. *
  24. * @return array<int, \Illuminate\Broadcasting\Channel>
  25. */
  26. public function broadcastOn(): array
  27. {
  28. return [new PrivateChannel('App.Models.Message.' . $this->message->id)];
  29. }
  30. public function broadcastAs(): string
  31. {
  32. return 'Wisper';
  33. }
  34. }