From c1cd4a520ecbe51d0f0c5a7d7d3fc85490121ecb Mon Sep 17 00:00:00 2001 From: Marcel Pociot Date: Tue, 27 Nov 2018 10:55:46 +0100 Subject: [PATCH] wip --- src/LaravelEcho/Pusher/Channels/PresenceChannel.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/LaravelEcho/Pusher/Channels/PresenceChannel.php b/src/LaravelEcho/Pusher/Channels/PresenceChannel.php index 7debca2..9db2cc4 100644 --- a/src/LaravelEcho/Pusher/Channels/PresenceChannel.php +++ b/src/LaravelEcho/Pusher/Channels/PresenceChannel.php @@ -24,7 +24,7 @@ class PresenceChannel extends Channel $this->saveConnection($connection); $channelData = json_decode($payload->channel_data); - $this->users[$connection->socketId] = $channelData; + $this->users[$channelData->user_id] = $channelData; // Send the success event $connection->send(json_encode([ @@ -57,10 +57,15 @@ class PresenceChannel extends Channel protected function getChannelData(): array { + $hash = []; + foreach ($this->users as $socketId => $channelData) { + $hash[$channelData->user_id] = $channelData->user_info; + } + return [ 'presence' => [ - 'ids' => array_values(array_map(function($channelData) { return $channelData->user_id; }, $this->users)), - 'hash' => array_map(function($channelData) { return $channelData->user_info; }, $this->users), + 'ids' => array_values(array_map(function($channelData) { return (string)$channelData->user_id; }, $this->users)), + 'hash' => $hash, 'count' => count($this->users) ] ];