File: /home/imensosw/public_html/mpl.imenso.co/app/Events/UserSendsMessage.php
<?php
namespace App\Events;
use App\Models\Message;
use App\Models\MessageThread;
use Illuminate\Broadcasting\Channel;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;
class UserSendsMessage implements ShouldBroadcast
{
use Dispatchable, InteractsWithSockets, SerializesModels;
public $thread;
public $message;
public $html;
/**
* Create a new event instance.
*
* @return void
*/
public function __construct(MessageThread $thread, Message $message, $html)
{
$this->thread = $thread;
$this->message = $message;
$this->html = $html;
}
/*
* Get the channels the event should broadcast on.
*
* @return Channel|array
*/
public function broadcastOn()
{
return new PrivateChannel("thread-{$this->thread->id}");
}
public function broadcastWith()
{
$this->message->extract = $this->message->getExtract();
$this->message->ago = 'A few seconds ago';
return [
'message' => $this->message,
'html' => $this->html,
];
}
}