<?php namespace App\Events\LiveStream; use Illuminate\Broadcasting\Channel; use Illuminate\Broadcasting\InteractsWithSockets; use Illuminate\Broadcasting\PresenceChannel; use Illuminate\Broadcasting\PrivateChannel; use Illuminate\Contracts\Broadcasting\ShouldBroadcast; use Illuminate\Foundation\Events\Dispatchable; use Illuminate\Queue\SerializesModels; use App\Models\LiveStream; class StreamStart implements ShouldBroadcast { use Dispatchable, InteractsWithSockets, SerializesModels; public $livestream; /** * Create a new event instance. * * @return void */ public function __construct(LiveStream $livestream) { $this->livestream = $livestream; } /** * Get the channels the event should broadcast on. * * @return \Illuminate\Broadcasting\Channel|array */ public function broadcastOn() { return new PrivateChannel('live.chat.' . $this->livestream->profile_id); } public function broadcastAs() { return 'stream.start'; } public function broadcastWith() { return ['ts' => time() ]; } }