From 546c4fd0ef362e457b33c1da2e8625a1230cc893 Mon Sep 17 00:00:00 2001 From: Alex Renoki Date: Fri, 18 Sep 2020 20:27:12 +0300 Subject: [PATCH] Broadcast both locally and across servers on dashboard logger. --- src/Channels/Channel.php | 12 ++++++++++++ src/DashboardLogger.php | 14 ++++++-------- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/Channels/Channel.php b/src/Channels/Channel.php index 476f51f..e0450bd 100644 --- a/src/Channels/Channel.php +++ b/src/Channels/Channel.php @@ -136,6 +136,18 @@ class Channel return true; } + /** + * Broadcast a payload to the locally-subscribed connections. + * + * @param string|int $appId + * @param \stdClass $payload + * @return bool + */ + public function broadcastLocally($appId, stdClass $payload): bool + { + return $this->broadcast($appId, $payload, false); + } + /** * Broadcast the payload, but exclude a specific socket id. * diff --git a/src/DashboardLogger.php b/src/DashboardLogger.php index 3309571..3ab4ded 100644 --- a/src/DashboardLogger.php +++ b/src/DashboardLogger.php @@ -83,15 +83,13 @@ class DashboardLogger $channel = $channelManager->find($appId, $channelName); if ($channel) { - $channel->broadcastToEveryoneExcept( - (object) $payload, - null, - $appId - ); - } else { - $channelManager->broadcastAcrossServers( - $appId, null, $channelName, (object) $payload + $channel->broadcastLocally( + $appId, (object) $payload, true ); } + + $channelManager->broadcastAcrossServers( + $appId, null, $channelName, (object) $payload + ); } }