|
@@ -0,0 +1,49 @@
|
|
|
+<?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() ];
|
|
|
+ }
|
|
|
+}
|