From 67e7beb119b40abf31a65affa0abe0c9cb9463ac Mon Sep 17 00:00:00 2001 From: Mohamed Said Date: Mon, 14 Nov 2016 14:34:17 +0200 Subject: [PATCH 1/2] Throw exception on Pusher broadcaster error --- .../Broadcasting/Broadcasters/PusherBroadcaster.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/Illuminate/Broadcasting/Broadcasters/PusherBroadcaster.php b/src/Illuminate/Broadcasting/Broadcasters/PusherBroadcaster.php index 31944a2da795..b921fb3e10b5 100644 --- a/src/Illuminate/Broadcasting/Broadcasters/PusherBroadcaster.php +++ b/src/Illuminate/Broadcasting/Broadcasters/PusherBroadcaster.php @@ -3,6 +3,7 @@ namespace Illuminate\Broadcasting\Broadcasters; use Pusher; +use RuntimeException; use Illuminate\Support\Arr; use Illuminate\Support\Str; use Symfony\Component\HttpKernel\Exception\HttpException; @@ -90,7 +91,13 @@ public function broadcast(array $channels, $event, array $payload = []) { $socket = Arr::pull($payload, 'socket'); - $this->pusher->trigger($this->formatChannels($channels), $event, $payload, $socket); + if (true === $response = $this->pusher->trigger($this->formatChannels($channels), $event, $payload, $socket)) { + return; + } + + throw new RuntimeException( + is_bool($response) ? 'Failed to connect to Pusher.' : $response['body'] + ); } /** From 4ab867f1201ede8c8e7dc33b5eafafb73799533d Mon Sep 17 00:00:00 2001 From: Mohamed Said Date: Mon, 14 Nov 2016 14:40:01 +0200 Subject: [PATCH 2/2] fix logic --- .../Broadcasting/Broadcasters/PusherBroadcaster.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Illuminate/Broadcasting/Broadcasters/PusherBroadcaster.php b/src/Illuminate/Broadcasting/Broadcasters/PusherBroadcaster.php index b921fb3e10b5..8dc0df4be67f 100644 --- a/src/Illuminate/Broadcasting/Broadcasters/PusherBroadcaster.php +++ b/src/Illuminate/Broadcasting/Broadcasters/PusherBroadcaster.php @@ -91,7 +91,9 @@ public function broadcast(array $channels, $event, array $payload = []) { $socket = Arr::pull($payload, 'socket'); - if (true === $response = $this->pusher->trigger($this->formatChannels($channels), $event, $payload, $socket)) { + $response = $this->pusher->trigger($this->formatChannels($channels), $event, $payload, $socket); + + if ((is_array($response) && $response['status'] == 200) || $response === true) { return; }