add api message sent event
This commit is contained in:
parent
cc9fb7d7eb
commit
76b8105492
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
namespace BeyondCode\LaravelWebSockets\Dashboard;
|
namespace BeyondCode\LaravelWebSockets\Dashboard;
|
||||||
|
|
||||||
|
use BeyondCode\LaravelWebSockets\Events\ApiMessageSent;
|
||||||
use BeyondCode\LaravelWebSockets\Events\ChannelVacated;
|
use BeyondCode\LaravelWebSockets\Events\ChannelVacated;
|
||||||
use BeyondCode\LaravelWebSockets\Events\ClientMessageSent;
|
use BeyondCode\LaravelWebSockets\Events\ClientMessageSent;
|
||||||
use BeyondCode\LaravelWebSockets\LaravelEcho\Pusher\Dashboard;
|
use BeyondCode\LaravelWebSockets\LaravelEcho\Pusher\Dashboard;
|
||||||
|
|
@ -9,6 +10,16 @@ use Illuminate\Events\Dispatcher;
|
||||||
|
|
||||||
class EventSubscriber
|
class EventSubscriber
|
||||||
{
|
{
|
||||||
|
public function onApiMessageSent(ApiMessageSent $event)
|
||||||
|
{
|
||||||
|
Dashboard::apiMessage(
|
||||||
|
$event->appId,
|
||||||
|
$event->channeldId,
|
||||||
|
$event->name,
|
||||||
|
$event->data
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
public function onChannelVacated(ChannelVacated $event)
|
public function onChannelVacated(ChannelVacated $event)
|
||||||
{
|
{
|
||||||
Dashboard::vacated($event->connection, $event->channelId);
|
Dashboard::vacated($event->connection, $event->channelId);
|
||||||
|
|
@ -21,6 +32,7 @@ class EventSubscriber
|
||||||
|
|
||||||
public function subscribe(Dispatcher $events)
|
public function subscribe(Dispatcher $events)
|
||||||
{
|
{
|
||||||
|
$events->listen(ApiMessageSent::class, static::class. '@onApiMessageSent');
|
||||||
$events->listen(ChannelVacated::class, static::class . '@onChannelVacated');
|
$events->listen(ChannelVacated::class, static::class . '@onChannelVacated');
|
||||||
$events->listen(ClientMessageSent::class, static::class . '@onClientMessageSent');
|
$events->listen(ClientMessageSent::class, static::class . '@onClientMessageSent');
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace BeyondCode\LaravelWebSockets\Events;
|
||||||
|
|
||||||
|
use Ratchet\ConnectionInterface;
|
||||||
|
use stdClass;
|
||||||
|
|
||||||
|
class ApiMessageSent
|
||||||
|
{
|
||||||
|
public $appId;
|
||||||
|
public $channeldId;
|
||||||
|
public $name;
|
||||||
|
public $data;
|
||||||
|
|
||||||
|
public function __construct($appId, $channeldId, $name, $data)
|
||||||
|
{
|
||||||
|
$this->appId = $appId;
|
||||||
|
|
||||||
|
$this->channeldId = $channeldId;
|
||||||
|
|
||||||
|
$this->name = $name;
|
||||||
|
|
||||||
|
$this->data = $data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
namespace BeyondCode\LaravelWebSockets\LaravelEcho\Http\Controllers;
|
namespace BeyondCode\LaravelWebSockets\LaravelEcho\Http\Controllers;
|
||||||
|
|
||||||
use BeyondCode\LaravelWebSockets\LaravelEcho\Pusher\Dashboard;
|
use BeyondCode\LaravelWebSockets\Events\ApiMessageSent;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
class TriggerEvent extends EchoController
|
class TriggerEvent extends EchoController
|
||||||
|
|
@ -12,13 +12,6 @@ class TriggerEvent extends EchoController
|
||||||
$this->ensureValidSignature($request);
|
$this->ensureValidSignature($request);
|
||||||
|
|
||||||
foreach ($request->json()->get('channels', []) as $channelId) {
|
foreach ($request->json()->get('channels', []) as $channelId) {
|
||||||
Dashboard::apiMessage(
|
|
||||||
$request->appId,
|
|
||||||
$channelId,
|
|
||||||
$request->json()->get('name'),
|
|
||||||
$request->json()->get('data')
|
|
||||||
);
|
|
||||||
|
|
||||||
$channel = $this->channelManager->find($request->appId, $channelId);
|
$channel = $this->channelManager->find($request->appId, $channelId);
|
||||||
|
|
||||||
optional($channel)->broadcastToEveryoneExcept([
|
optional($channel)->broadcastToEveryoneExcept([
|
||||||
|
|
@ -26,6 +19,13 @@ class TriggerEvent extends EchoController
|
||||||
'event' => $request->json()->get('name'),
|
'event' => $request->json()->get('name'),
|
||||||
'data' => $request->json()->get('data'),
|
'data' => $request->json()->get('data'),
|
||||||
], $request->json()->get('socket_id'));
|
], $request->json()->get('socket_id'));
|
||||||
|
|
||||||
|
event(new ApiMessageSent(
|
||||||
|
$request->appId,
|
||||||
|
$channelId,
|
||||||
|
$request->json()->get('name'),
|
||||||
|
$request->json()->get('data')
|
||||||
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
return $request->json()->all();
|
return $request->json()->all();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue