| Server IP : 35.80.110.71 / Your IP : 216.73.216.221 Web Server : Apache/2.4.58 (Ubuntu) System : Linux ip-172-31-21-44 6.17.0-1019-aws #19~24.04.1-Ubuntu SMP Tue Jun 23 18:53:06 UTC 2026 x86_64 User : ubuntu ( 1000) PHP Version : 8.3.31 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/client-portal-laravel/releases/20260626120707/app/Events/ |
Upload File : |
<?php
declare(strict_types=1);
namespace App\Events;
use App\Events\Concerns\HasStandardPayload;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;
class TimerUpdated implements ShouldBroadcast
{
use Dispatchable, HasStandardPayload, InteractsWithSockets, SerializesModels;
/**
* @param array<string, mixed> $state
*/
public function __construct(
public int $userId,
public array $state,
) {}
/**
* Get the broadcast channels.
*/
public function broadcastOn(): array
{
return [
new PrivateChannel("timer.{$this->userId}"),
];
}
/**
* Get the broadcast event name.
*/
public function broadcastAs(): string
{
return 'timer.updated';
}
/**
* Get the data to broadcast.
*/
public function broadcastWith(): array
{
return $this->withMetadata([
'user_id' => $this->userId,
'state' => $this->state,
'device_id' => $this->state['device_id'] ?? null,
]);
}
}