From f9d44040eb9f84a90e2191f9ff2f147cbe9a5e58 Mon Sep 17 00:00:00 2001 From: Marcel Pociot Date: Thu, 22 Nov 2018 22:30:28 +0100 Subject: [PATCH] wip --- src/LaravelEcho/Http/Controllers/TriggerEvent.php | 4 ++-- src/LaravelEcho/Pusher/Channels/Channel.php | 11 ++++++++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/LaravelEcho/Http/Controllers/TriggerEvent.php b/src/LaravelEcho/Http/Controllers/TriggerEvent.php index 34c421b..686c0d1 100644 --- a/src/LaravelEcho/Http/Controllers/TriggerEvent.php +++ b/src/LaravelEcho/Http/Controllers/TriggerEvent.php @@ -23,11 +23,11 @@ class TriggerEvent extends EchoController foreach ($request->json()->get('channels', []) as $channelId) { $channel = $this->channelManager->find($request->appId, $channelId); - optional($channel)->broadcast([ + optional($channel)->broadcastToEveryoneExcept([ 'channel' => $channelId, 'event' => $request->json()->get('name'), 'data' => $request->json()->get('data'), - ]); + ], $request->json()->get('socket_id')); } return $request->json()->all(); diff --git a/src/LaravelEcho/Pusher/Channels/Channel.php b/src/LaravelEcho/Pusher/Channels/Channel.php index ff336ef..cf654c1 100644 --- a/src/LaravelEcho/Pusher/Channels/Channel.php +++ b/src/LaravelEcho/Pusher/Channels/Channel.php @@ -71,11 +71,16 @@ class Channel } } + public function broadcastToEveryoneExcept($payload, ?string $socketId = null) + { + Collection::make($this->subscriptions)->reject(function ($existingConnection) use ($socketId) { + return $existingConnection->socketId === $socketId; + })->each->send(json_encode($payload)); + } + public function broadcastToOthers(ConnectionInterface $connection, $payload) { - Collection::make($this->subscriptions)->reject(function ($existingConnection) use ($connection) { - return $existingConnection->socketId === $connection->socketId; - })->each->send(json_encode($payload)); + $this->broadcastToEveryoneExcept($payload, $connection->socketId); } public function toArray(): array