WebsocketEventData.php 678 B

12345678910111213141516171819202122232425262728293031
  1. <?php
  2. namespace App\Broadcasting\Entity;
  3. final readonly class WebsocketEventData
  4. {
  5. public function __construct(
  6. public string $room,
  7. public mixed $data,
  8. public string $event = 'event',
  9. public ?string $projectName = null
  10. ) {}
  11. public static function from(
  12. string $room,
  13. mixed $data,
  14. string $event = 'event'
  15. ): self {
  16. return new self(
  17. room: $room,
  18. data: $data,
  19. event: $event,
  20. projectName: config('app.name')
  21. );
  22. }
  23. public function channelName(): string
  24. {
  25. return "{$this->projectName}:{$this->room}@{$this->event}";
  26. }
  27. }