This commit is contained in:
Marcel Pociot 2018-11-22 00:03:13 +01:00
parent ac2a8b4768
commit c8054f80ba
2 changed files with 13 additions and 9 deletions

View File

@ -26,15 +26,15 @@ class Channel
/** /**
* @link https://pusher.com/docs/pusher_protocol#presence-channel-events * @link https://pusher.com/docs/pusher_protocol#presence-channel-events
* *
* @param ConnectionInterface $conn * @param ConnectionInterface $connection
* @param $payload * @param $payload
*/ */
public function subscribe(ConnectionInterface $conn, $payload) public function subscribe(ConnectionInterface $connection, $payload)
{ {
$this->saveConnection($conn); $this->saveConnection($connection);
// Send the success event // Send the success event
$conn->send(json_encode([ $connection->send(json_encode([
'event' => 'pusher_internal:subscription_succeeded', 'event' => 'pusher_internal:subscription_succeeded',
'channel' => $this->channelId 'channel' => $this->channelId
])); ]));

View File

@ -11,24 +11,28 @@ class PresenceChannel extends Channel
/** /**
* @link https://pusher.com/docs/pusher_protocol#presence-channel-events * @link https://pusher.com/docs/pusher_protocol#presence-channel-events
* *
* @param ConnectionInterface $conn * @param ConnectionInterface $connection
* @param $payload * @param $payload
*/ */
public function subscribe(ConnectionInterface $conn, $payload) public function subscribe(ConnectionInterface $connection, $payload)
{ {
$this->saveConnection($conn); $this->saveConnection($connection);
$channelData = json_decode($payload->channel_data); $channelData = json_decode($payload->channel_data);
$this->subscriptions[$channelData->user_id] = $channelData; $this->subscriptions[$channelData->user_id] = $channelData;
// Send the success event // Send the success event
$conn->send(json_encode([ $connection->send(json_encode([
'event' => 'pusher_internal:subscription_succeeded', 'event' => 'pusher_internal:subscription_succeeded',
'channel' => $this->channelId, 'channel' => $this->channelId,
'data' => json_encode($this->getChannelData()) 'data' => json_encode($this->getChannelData())
])); ]));
//TODO: send member_added message back to client, and broadcast to everyone on channel $this->broadcastToOthers($connection, [
'event' => 'pusher_internal:member_added',
'channel' => $this->channelId,
'data' => json_encode($channelData)
]);
} }
public function unsubscribe(ConnectionInterface $connection) public function unsubscribe(ConnectionInterface $connection)