Files
eatvio-infra/app/Events/ChatMessageUpdated.php
2023-05-22 09:52:08 +00:00

46 lines
1.3 KiB
PHP

<?php
namespace App\Events;
use App\Http\Controllers\ChatMessage;
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;
class ChatMessageUpdated implements ShouldBroadcast
{
use Dispatchable, InteractsWithSockets, SerializesModels;
public $message;
/**
* Create a new event instance.
* @param $message
* @return void
*/
public function __construct(array $message)
{
$this->message = $message;
$this->dontBroadcastToCurrentUser();
}
/**
* Get the channels the event should broadcast on.
*
* @return \Illuminate\Broadcasting\Channel|array
*/
public function broadcastOn()
{
// return new Channel('direct-chat');
$chanId = (int) $this->message['to_user_id'] < (int) $this->message['from_user_id']
? $this->message['to_user_id'] . "_" . $this->message['from_user_id']
: $this->message['from_user_id'] . "_" . $this->message['to_user_id'];
return new PrivateChannel('direct-chat.' . $chanId);
}
}