formatting

This commit is contained in:
Alex Renoki 2020-12-07 20:36:39 +02:00
parent 6be62b149d
commit 8308a7d16d
15 changed files with 557 additions and 756 deletions

View File

@ -28,9 +28,7 @@ class FetchChannels extends Controller
} }
} }
return $this->channelManager return $this->channelManager->getGlobalChannels($request->appId)->then(function ($channels) use ($request, $attributes) {
->getGlobalChannels($request->appId)
->then(function ($channels) use ($request, $attributes) {
$channels = collect($channels)->keyBy(function ($channel) { $channels = collect($channels)->keyBy(function ($channel) {
return $channel instanceof Channel return $channel instanceof Channel
? $channel->getName() ? $channel->getName()

View File

@ -163,8 +163,7 @@ class LocalChannelManager implements ChannelManager
return Helpers::createFulfilledPromise(false); return Helpers::createFulfilledPromise(false);
} }
$this->getLocalChannels($connection->app->id) $this->getLocalChannels($connection->app->id)->then(function ($channels) use ($connection) {
->then(function ($channels) use ($connection) {
collect($channels)->each->unsubscribe($connection); collect($channels)->each->unsubscribe($connection);
collect($channels) collect($channels)
@ -174,8 +173,7 @@ class LocalChannelManager implements ChannelManager
}); });
}); });
$this->getLocalChannels($connection->app->id) $this->getLocalChannels($connection->app->id)->then(function ($channels) use ($connection) {
->then(function ($channels) use ($connection) {
if (count($channels) === 0) { if (count($channels) === 0) {
unset($this->channels[$connection->app->id]); unset($this->channels[$connection->app->id]);
} }
@ -252,8 +250,7 @@ class LocalChannelManager implements ChannelManager
*/ */
public function getLocalConnectionsCount($appId, string $channelName = null): PromiseInterface public function getLocalConnectionsCount($appId, string $channelName = null): PromiseInterface
{ {
return $this->getLocalChannels($appId) return $this->getLocalChannels($appId)->then(function ($channels) use ($channelName) {
->then(function ($channels) use ($channelName) {
return collect($channels)->when(! is_null($channelName), function ($collection) use ($channelName) { return collect($channels)->when(! is_null($channelName), function ($collection) use ($channelName) {
return $collection->filter(function (Channel $channel) use ($channelName) { return $collection->filter(function (Channel $channel) use ($channelName) {
return $channel->getName() === $channelName; return $channel->getName() === $channelName;
@ -455,8 +452,7 @@ class LocalChannelManager implements ChannelManager
*/ */
public function updateConnectionInChannels($connection): PromiseInterface public function updateConnectionInChannels($connection): PromiseInterface
{ {
return $this->getLocalChannels($connection->app->id) return $this->getLocalChannels($connection->app->id)->then(function ($channels) use ($connection) {
->then(function ($channels) use ($connection) {
foreach ($channels as $channel) { foreach ($channels as $channel) {
if ($channel->hasConnection($connection)) { if ($channel->hasConnection($connection)) {
$channel->saveConnection($connection); $channel->saveConnection($connection);

View File

@ -137,13 +137,11 @@ class RedisChannelManager extends LocalChannelManager
*/ */
public function unsubscribeFromAllChannels(ConnectionInterface $connection): PromiseInterface public function unsubscribeFromAllChannels(ConnectionInterface $connection): PromiseInterface
{ {
return $this->getGlobalChannels($connection->app->id) return $this->getGlobalChannels($connection->app->id)->then(function ($channels) use ($connection) {
->then(function ($channels) use ($connection) {
foreach ($channels as $channel) { foreach ($channels as $channel) {
$this->unsubscribeFromChannel($connection, $channel, new stdClass); $this->unsubscribeFromChannel($connection, $channel, new stdClass);
} }
}) })->then(function () use ($connection) {
->then(function () use ($connection) {
return parent::unsubscribeFromAllChannels($connection); return parent::unsubscribeFromAllChannels($connection);
}); });
} }
@ -158,17 +156,13 @@ class RedisChannelManager extends LocalChannelManager
*/ */
public function subscribeToChannel(ConnectionInterface $connection, string $channelName, stdClass $payload): PromiseInterface public function subscribeToChannel(ConnectionInterface $connection, string $channelName, stdClass $payload): PromiseInterface
{ {
return $this->subscribeToTopic($connection->app->id, $channelName) return $this->subscribeToTopic($connection->app->id, $channelName)->then(function () use ($connection) {
->then(function () use ($connection) {
return $this->addConnectionToSet($connection, Carbon::now()); return $this->addConnectionToSet($connection, Carbon::now());
}) })->then(function () use ($connection, $channelName) {
->then(function () use ($connection, $channelName) {
return $this->addChannelToSet($connection->app->id, $channelName); return $this->addChannelToSet($connection->app->id, $channelName);
}) })->then(function () use ($connection, $channelName) {
->then(function () use ($connection, $channelName) {
return $this->incrementSubscriptionsCount($connection->app->id, $channelName, 1); return $this->incrementSubscriptionsCount($connection->app->id, $channelName, 1);
}) })->then(function () use ($connection, $channelName, $payload) {
->then(function () use ($connection, $channelName, $payload) {
return parent::subscribeToChannel($connection, $channelName, $payload); return parent::subscribeToChannel($connection, $channelName, $payload);
}); });
} }
@ -199,14 +193,11 @@ class RedisChannelManager extends LocalChannelManager
$this->unsubscribeFromTopic($connection->app->id, $channelName); $this->unsubscribeFromTopic($connection->app->id, $channelName);
} }
}); });
}) })->then(function () use ($connection, $channelName) {
->then(function () use ($connection, $channelName) {
return $this->removeChannelFromSet($connection->app->id, $channelName); return $this->removeChannelFromSet($connection->app->id, $channelName);
}) })->then(function () use ($connection) {
->then(function () use ($connection) {
return $this->removeConnectionFromSet($connection); return $this->removeConnectionFromSet($connection);
}) })->then(function () use ($connection, $channelName, $payload) {
->then(function () use ($connection, $channelName, $payload) {
return parent::unsubscribeFromChannel($connection, $channelName, $payload); return parent::unsubscribeFromChannel($connection, $channelName, $payload);
}); });
} }
@ -220,8 +211,7 @@ class RedisChannelManager extends LocalChannelManager
*/ */
public function subscribeToApp($appId): PromiseInterface public function subscribeToApp($appId): PromiseInterface
{ {
return $this->subscribeToTopic($appId) return $this->subscribeToTopic($appId)->then(function () use ($appId) {
->then(function () use ($appId) {
return $this->incrementSubscriptionsCount($appId); return $this->incrementSubscriptionsCount($appId);
}); });
} }
@ -235,8 +225,7 @@ class RedisChannelManager extends LocalChannelManager
*/ */
public function unsubscribeFromApp($appId): PromiseInterface public function unsubscribeFromApp($appId): PromiseInterface
{ {
return $this->unsubscribeFromTopic($appId) return $this->unsubscribeFromTopic($appId)->then(function () use ($appId) {
->then(function () use ($appId) {
return $this->decrementSubscriptionsCount($appId); return $this->decrementSubscriptionsCount($appId);
}); });
} }
@ -308,8 +297,7 @@ class RedisChannelManager extends LocalChannelManager
return $this->storeUserData($connection->app->id, $channel, $connection->socketId, json_encode($user)) return $this->storeUserData($connection->app->id, $channel, $connection->socketId, json_encode($user))
->then(function () use ($connection, $channel, $user) { ->then(function () use ($connection, $channel, $user) {
return $this->addUserSocket($connection->app->id, $channel, $user, $connection->socketId); return $this->addUserSocket($connection->app->id, $channel, $user, $connection->socketId);
}) })->then(function () use ($connection, $user, $channel, $payload) {
->then(function () use ($connection, $user, $channel, $payload) {
return parent::userJoinedPresenceChannel($connection, $user, $channel, $payload); return parent::userJoinedPresenceChannel($connection, $user, $channel, $payload);
}); });
} }
@ -328,8 +316,7 @@ class RedisChannelManager extends LocalChannelManager
return $this->removeUserData($connection->app->id, $channel, $connection->socketId) return $this->removeUserData($connection->app->id, $channel, $connection->socketId)
->then(function () use ($connection, $channel, $user) { ->then(function () use ($connection, $channel, $user) {
return $this->removeUserSocket($connection->app->id, $channel, $user, $connection->socketId); return $this->removeUserSocket($connection->app->id, $channel, $user, $connection->socketId);
}) })->then(function () use ($connection, $user, $channel) {
->then(function () use ($connection, $user, $channel) {
return parent::userLeftPresenceChannel($connection, $user, $channel); return parent::userLeftPresenceChannel($connection, $user, $channel);
}); });
} }
@ -383,8 +370,7 @@ class RedisChannelManager extends LocalChannelManager
); );
} }
return $this->publishClient->exec() return $this->publishClient->exec()->then(function ($data) use ($channelNames) {
->then(function ($data) use ($channelNames) {
return array_combine($channelNames, $data); return array_combine($channelNames, $data);
}); });
} }
@ -413,8 +399,7 @@ class RedisChannelManager extends LocalChannelManager
public function connectionPonged(ConnectionInterface $connection): PromiseInterface public function connectionPonged(ConnectionInterface $connection): PromiseInterface
{ {
// This will update the score with the current timestamp. // This will update the score with the current timestamp.
return $this->addConnectionToSet($connection, Carbon::now()) return $this->addConnectionToSet($connection, Carbon::now())->then(function () use ($connection) {
->then(function () use ($connection) {
return parent::connectionPonged($connection); return parent::connectionPonged($connection);
}); });
} }

View File

@ -54,8 +54,7 @@ class PresenceChannel extends PrivateChannel
]), ]),
])); ]));
}); });
}) })->then(function () use ($connection, $user, $payload) {
->then(function () use ($connection, $user, $payload) {
// The `pusher_internal:member_added` event is triggered when a user joins a channel. // The `pusher_internal:member_added` event is triggered when a user joins a channel.
// It's quite possible that a user can have multiple connections to the same channel // It's quite possible that a user can have multiple connections to the same channel
// (for example by having multiple browser tabs open) // (for example by having multiple browser tabs open)
@ -104,12 +103,9 @@ class PresenceChannel extends PrivateChannel
{ {
$truth = parent::unsubscribe($connection); $truth = parent::unsubscribe($connection);
$this->channelManager $this->channelManager->getChannelMember($connection, $this->getName())->then(function ($user) {
->getChannelMember($connection, $this->getName())
->then(function ($user) {
return @json_decode($user); return @json_decode($user);
}) })->then(function ($user) use ($connection) {
->then(function ($user) use ($connection) {
if (! $user) { if (! $user) {
return; return;
} }

View File

@ -304,13 +304,11 @@ class StartServer extends Command
// Get all local connections and close them. They will // Get all local connections and close them. They will
// be automatically be unsubscribed from all channels. // be automatically be unsubscribed from all channels.
$channelManager->getLocalConnections() $channelManager->getLocalConnections()->then(function ($connections) {
->then(function ($connections) {
foreach ($connections as $connection) { foreach ($connections as $connection) {
$connection->close(); $connection->close();
} }
}) })->then(function () {
->then(function () {
$this->loop->stop(); $this->loop->stop();
}); });
} }

View File

@ -32,9 +32,7 @@ class PusherChannelProtocolMessage extends PusherClientMessage
*/ */
protected function ping(ConnectionInterface $connection) protected function ping(ConnectionInterface $connection)
{ {
$this->channelManager $this->channelManager->connectionPonged($connection)->then(function () use ($connection) {
->connectionPonged($connection)
->then(function () use ($connection) {
$connection->send(json_encode(['event' => 'pusher:pong'])); $connection->send(json_encode(['event' => 'pusher:pong']));
ConnectionPonged::dispatch($connection->app->id, $connection->socketId); ConnectionPonged::dispatch($connection->app->id, $connection->socketId);

View File

@ -98,9 +98,7 @@ class MemoryCollector implements StatisticsCollector
$this->createRecord($statistic, $appId); $this->createRecord($statistic, $appId);
$this->channelManager $this->channelManager->getGlobalConnectionsCount($appId)->then(function ($connections) use ($statistic) {
->getGlobalConnectionsCount($appId)
->then(function ($connections) use ($statistic) {
$statistic->reset( $statistic->reset(
is_null($connections) ? 0 : $connections is_null($connections) ? 0 : $connections
); );

View File

@ -84,16 +84,12 @@ class RedisCollector extends MemoryCollector
->hincrby( ->hincrby(
$this->channelManager->getRedisKey($appId, null, ['stats']), $this->channelManager->getRedisKey($appId, null, ['stats']),
'current_connections_count', 1 'current_connections_count', 1
) )->then(function ($currentConnectionsCount) use ($appId) {
->then(function ($currentConnectionsCount) use ($appId) {
// Get the peak connections count from Redis. // Get the peak connections count from Redis.
$this->channelManager $this->channelManager->getPublishClient()->hget(
->getPublishClient()
->hget(
$this->channelManager->getRedisKey($appId, null, ['stats']), $this->channelManager->getRedisKey($appId, null, ['stats']),
'peak_connections_count' 'peak_connections_count'
) )->then(function ($currentPeakConnectionCount) use ($currentConnectionsCount, $appId) {
->then(function ($currentPeakConnectionCount) use ($currentConnectionsCount, $appId) {
// Extract the greatest number between the current peak connection count // Extract the greatest number between the current peak connection count
// and the current connection number. // and the current connection number.
$peakConnectionsCount = is_null($currentPeakConnectionCount) $peakConnectionsCount = is_null($currentPeakConnectionCount)
@ -101,9 +97,7 @@ class RedisCollector extends MemoryCollector
: max($currentPeakConnectionCount, $currentConnectionsCount); : max($currentPeakConnectionCount, $currentConnectionsCount);
// Then set it to the database. // Then set it to the database.
$this->channelManager $this->channelManager->getPublishClient()->hset(
->getPublishClient()
->hset(
$this->channelManager->getRedisKey($appId, null, ['stats']), $this->channelManager->getRedisKey($appId, null, ['stats']),
'peak_connections_count', $peakConnectionsCount 'peak_connections_count', $peakConnectionsCount
); );
@ -135,9 +129,7 @@ class RedisCollector extends MemoryCollector
: max($currentPeakConnectionCount, $currentConnectionsCount); : max($currentPeakConnectionCount, $currentConnectionsCount);
// Then set it to the database. // Then set it to the database.
$this->channelManager $this->channelManager->getPublishClient()->hset(
->getPublishClient()
->hset(
$this->channelManager->getRedisKey($appId, null, ['stats']), $this->channelManager->getRedisKey($appId, null, ['stats']),
'peak_connections_count', $peakConnectionsCount 'peak_connections_count', $peakConnectionsCount
); );
@ -153,10 +145,7 @@ class RedisCollector extends MemoryCollector
public function save() public function save()
{ {
$this->lock()->get(function () { $this->lock()->get(function () {
$this->channelManager $this->channelManager->getPublishClient()->smembers(static::$redisSetName)->then(function ($members) {
->getPublishClient()
->smembers(static::$redisSetName)
->then(function ($members) {
foreach ($members as $appId) { foreach ($members as $appId) {
$this->channelManager $this->channelManager
->getPublishClient() ->getPublishClient()
@ -206,10 +195,7 @@ class RedisCollector extends MemoryCollector
*/ */
public function getStatistics(): PromiseInterface public function getStatistics(): PromiseInterface
{ {
return $this->channelManager return $this->channelManager->getPublishClient()->smembers(static::$redisSetName)->then(function ($members) {
->getPublishClient()
->smembers(static::$redisSetName)
->then(function ($members) {
$appsWithStatistics = []; $appsWithStatistics = [];
foreach ($members as $appId) { foreach ($members as $appId) {
@ -254,30 +240,22 @@ class RedisCollector extends MemoryCollector
*/ */
public function resetStatistics($appId, int $currentConnectionCount) public function resetStatistics($appId, int $currentConnectionCount)
{ {
$this->channelManager $this->channelManager->getPublishClient()->hset(
->getPublishClient()
->hset(
$this->channelManager->getRedisKey($appId, null, ['stats']), $this->channelManager->getRedisKey($appId, null, ['stats']),
'current_connections_count', $currentConnectionCount 'current_connections_count', $currentConnectionCount
); );
$this->channelManager $this->channelManager->getPublishClient()->hset(
->getPublishClient()
->hset(
$this->channelManager->getRedisKey($appId, null, ['stats']), $this->channelManager->getRedisKey($appId, null, ['stats']),
'peak_connections_count', $currentConnectionCount 'peak_connections_count', $currentConnectionCount
); );
$this->channelManager $this->channelManager->getPublishClient()->hset(
->getPublishClient()
->hset(
$this->channelManager->getRedisKey($appId, null, ['stats']), $this->channelManager->getRedisKey($appId, null, ['stats']),
'websocket_messages_count', 0 'websocket_messages_count', 0
); );
$this->channelManager $this->channelManager->getPublishClient()->hset(
->getPublishClient()
->hset(
$this->channelManager->getRedisKey($appId, null, ['stats']), $this->channelManager->getRedisKey($appId, null, ['stats']),
'api_messages_count', 0 'api_messages_count', 0
); );
@ -292,37 +270,27 @@ class RedisCollector extends MemoryCollector
*/ */
public function resetAppTraces($appId) public function resetAppTraces($appId)
{ {
$this->channelManager $this->channelManager->getPublishClient()->hdel(
->getPublishClient()
->hdel(
$this->channelManager->getRedisKey($appId, null, ['stats']), $this->channelManager->getRedisKey($appId, null, ['stats']),
'current_connections_count' 'current_connections_count'
); );
$this->channelManager $this->channelManager->getPublishClient()->hdel(
->getPublishClient()
->hdel(
$this->channelManager->getRedisKey($appId, null, ['stats']), $this->channelManager->getRedisKey($appId, null, ['stats']),
'peak_connections_count' 'peak_connections_count'
); );
$this->channelManager $this->channelManager->getPublishClient()->hdel(
->getPublishClient()
->hdel(
$this->channelManager->getRedisKey($appId, null, ['stats']), $this->channelManager->getRedisKey($appId, null, ['stats']),
'websocket_messages_count' 'websocket_messages_count'
); );
$this->channelManager $this->channelManager->getPublishClient()->hdel(
->getPublishClient()
->hdel(
$this->channelManager->getRedisKey($appId, null, ['stats']), $this->channelManager->getRedisKey($appId, null, ['stats']),
'api_messages_count' 'api_messages_count'
); );
$this->channelManager $this->channelManager->getPublishClient()->srem(static::$redisSetName, $appId);
->getPublishClient()
->srem(static::$redisSetName, $appId);
} }
/** /**
@ -333,9 +301,7 @@ class RedisCollector extends MemoryCollector
*/ */
protected function ensureAppIsInSet($appId) protected function ensureAppIsInSet($appId)
{ {
$this->channelManager $this->channelManager->getPublishClient()->sadd(static::$redisSetName, $appId);
->getPublishClient()
->sadd(static::$redisSetName, $appId);
return $this->channelManager->getPublishClient(); return $this->channelManager->getPublishClient();
} }

View File

@ -62,9 +62,7 @@ class AsyncRedisQueueTest extends TestCase
$this->queue->later(-300, $jobs[2]); $this->queue->later(-300, $jobs[2]);
$this->queue->later(-100, $jobs[3]); $this->queue->later(-100, $jobs[3]);
$this->getPublishClient() $this->getPublishClient()->zcard('queues:default:delayed')->then(function ($count) {
->zcard('queues:default:delayed')
->then(function ($count) {
$this->assertEquals(4, $count); $this->assertEquals(4, $count);
}); });
@ -87,8 +85,7 @@ class AsyncRedisQueueTest extends TestCase
$this->unregisterManagers(); $this->unregisterManagers();
$this->getPublishClient() $this->getPublishClient()->assertCalledCount(1, 'eval');
->assertCalledCount(1, 'eval');
$redisJob = $this->queue->pop(); $redisJob = $this->queue->pop();
@ -126,8 +123,7 @@ class AsyncRedisQueueTest extends TestCase
$this->unregisterManagers(); $this->unregisterManagers();
$this->getPublishClient() $this->getPublishClient()->assertCalledCount(1, 'eval');
->assertCalledCount(1, 'eval');
$redisJob = $this->queue->pop(); $redisJob = $this->queue->pop();
@ -152,8 +148,7 @@ class AsyncRedisQueueTest extends TestCase
$this->queue->push($job1); $this->queue->push($job1);
$this->queue->push($job2); $this->queue->push($job2);
$this->getPublishClient() $this->getPublishClient()->assertCalledCount(2, 'eval');
->assertCalledCount(2, 'eval');
$this->unregisterManagers(); $this->unregisterManagers();

View File

@ -54,29 +54,21 @@ class ConnectionTest extends TestCase
{ {
$connection = $this->newActiveConnection(['public-channel']); $connection = $this->newActiveConnection(['public-channel']);
$this->channelManager $this->channelManager->getGlobalChannels('1234')->then(function ($channels) {
->getGlobalChannels('1234')
->then(function ($channels) {
$this->assertCount(1, $channels); $this->assertCount(1, $channels);
}); });
$this->channelManager $this->channelManager->getGlobalConnectionsCount('1234')->then(function ($total) {
->getGlobalConnectionsCount('1234')
->then(function ($total) {
$this->assertEquals(1, $total); $this->assertEquals(1, $total);
}); });
$this->pusherServer->onClose($connection); $this->pusherServer->onClose($connection);
$this->channelManager $this->channelManager->getGlobalConnectionsCount('1234')->then(function ($total) {
->getGlobalConnectionsCount('1234')
->then(function ($total) {
$this->assertEquals(0, $total); $this->assertEquals(0, $total);
}); });
$this->channelManager $this->channelManager->getGlobalChannels('1234')->then(function ($channels) {
->getGlobalChannels('1234')
->then(function ($channels) {
$this->assertCount(0, $channels); $this->assertCount(0, $channels);
}); });
} }

View File

@ -20,23 +20,17 @@ class LocalPongRemovalTest extends TestCase
$this->channelManager->updateConnectionInChannels($activeConnection); $this->channelManager->updateConnectionInChannels($activeConnection);
$this->channelManager->updateConnectionInChannels($obsoleteConnection); $this->channelManager->updateConnectionInChannels($obsoleteConnection);
$this->channelManager $this->channelManager->getGlobalConnectionsCount('1234', 'public-channel')->then(function ($count) {
->getGlobalConnectionsCount('1234', 'public-channel')
->then(function ($count) {
$this->assertEquals(2, $count); $this->assertEquals(2, $count);
}); });
$this->channelManager->removeObsoleteConnections(); $this->channelManager->removeObsoleteConnections();
$this->channelManager $this->channelManager->getGlobalConnectionsCount('1234', 'public-channel')->then(function ($count) {
->getGlobalConnectionsCount('1234', 'public-channel')
->then(function ($count) {
$this->assertEquals(1, $count); $this->assertEquals(1, $count);
}); });
$this->channelManager $this->channelManager->getLocalConnections()->then(function ($connections) use ($activeConnection) {
->getLocalConnections()
->then(function ($connections) use ($activeConnection) {
$connection = $connections[$activeConnection->socketId]; $connection = $connections[$activeConnection->socketId];
$this->assertEquals($activeConnection->socketId, $connection->socketId); $this->assertEquals($activeConnection->socketId, $connection->socketId);
@ -57,23 +51,17 @@ class LocalPongRemovalTest extends TestCase
$this->channelManager->updateConnectionInChannels($activeConnection); $this->channelManager->updateConnectionInChannels($activeConnection);
$this->channelManager->updateConnectionInChannels($obsoleteConnection); $this->channelManager->updateConnectionInChannels($obsoleteConnection);
$this->channelManager $this->channelManager->getGlobalConnectionsCount('1234', 'private-channel')->then(function ($count) {
->getGlobalConnectionsCount('1234', 'private-channel')
->then(function ($count) {
$this->assertEquals(2, $count); $this->assertEquals(2, $count);
}); });
$this->channelManager->removeObsoleteConnections(); $this->channelManager->removeObsoleteConnections();
$this->channelManager $this->channelManager->getGlobalConnectionsCount('1234', 'private-channel')->then(function ($count) {
->getGlobalConnectionsCount('1234', 'private-channel')
->then(function ($count) {
$this->assertEquals(1, $count); $this->assertEquals(1, $count);
}); });
$this->channelManager $this->channelManager->getLocalConnections()->then(function ($connections) use ($activeConnection) {
->getLocalConnections()
->then(function ($connections) use ($activeConnection) {
$connection = $connections[$activeConnection->socketId]; $connection = $connections[$activeConnection->socketId];
$this->assertEquals($activeConnection->socketId, $connection->socketId); $this->assertEquals($activeConnection->socketId, $connection->socketId);
@ -94,37 +82,27 @@ class LocalPongRemovalTest extends TestCase
$this->channelManager->updateConnectionInChannels($activeConnection); $this->channelManager->updateConnectionInChannels($activeConnection);
$this->channelManager->updateConnectionInChannels($obsoleteConnection); $this->channelManager->updateConnectionInChannels($obsoleteConnection);
$this->channelManager $this->channelManager->getGlobalConnectionsCount('1234', 'presence-channel')->then(function ($count) {
->getGlobalConnectionsCount('1234', 'presence-channel')
->then(function ($count) {
$this->assertEquals(2, $count); $this->assertEquals(2, $count);
}); });
$this->channelManager $this->channelManager->getChannelMembers('1234', 'presence-channel')->then(function ($members) {
->getChannelMembers('1234', 'presence-channel')
->then(function ($members) {
$this->assertCount(2, $members); $this->assertCount(2, $members);
}); });
$this->channelManager->removeObsoleteConnections(); $this->channelManager->removeObsoleteConnections();
$this->channelManager $this->channelManager->getGlobalConnectionsCount('1234', 'presence-channel')->then(function ($count) {
->getGlobalConnectionsCount('1234', 'presence-channel')
->then(function ($count) {
$this->assertEquals(1, $count); $this->assertEquals(1, $count);
}); });
$this->channelManager $this->channelManager->getLocalConnections()->then(function ($connections) use ($activeConnection) {
->getLocalConnections()
->then(function ($connections) use ($activeConnection) {
$connection = $connections[$activeConnection->socketId]; $connection = $connections[$activeConnection->socketId];
$this->assertEquals($activeConnection->socketId, $connection->socketId); $this->assertEquals($activeConnection->socketId, $connection->socketId);
}); });
$this->channelManager $this->channelManager->getChannelMembers('1234', 'presence-channel')->then(function ($members) {
->getChannelMembers('1234', 'presence-channel')
->then(function ($members) {
$this->assertCount(1, $members); $this->assertCount(1, $members);
}); });
} }

View File

@ -58,9 +58,7 @@ class PresenceChannelTest extends TestCase
'channel' => 'presence-channel', 'channel' => 'presence-channel',
]); ]);
$this->channelManager $this->channelManager->getGlobalConnectionsCount('1234', 'presence-channel')->then(function ($total) {
->getGlobalConnectionsCount('1234', 'presence-channel')
->then(function ($total) {
$this->assertEquals(1, $total); $this->assertEquals(1, $total);
}); });
} }
@ -112,15 +110,11 @@ class PresenceChannelTest extends TestCase
]), ]),
]); ]);
$this->channelManager $this->channelManager->getGlobalConnectionsCount('1234', 'presence-channel')->then(function ($total) {
->getGlobalConnectionsCount('1234', 'presence-channel')
->then(function ($total) {
$this->assertEquals(3, $total); $this->assertEquals(3, $total);
}); });
$this->channelManager $this->channelManager->getChannelMembers('1234', 'presence-channel')->then(function ($members) {
->getChannelMembers('1234', 'presence-channel')
->then(function ($members) {
$this->assertCount(2, $members); $this->assertCount(2, $members);
}); });
} }
@ -135,9 +129,7 @@ class PresenceChannelTest extends TestCase
'data' => json_encode(['user_id' => 2]), 'data' => json_encode(['user_id' => 2]),
]); ]);
$this->channelManager $this->channelManager->getChannelMembers('1234', 'presence-channel')->then(function ($members) {
->getChannelMembers('1234', 'presence-channel')
->then(function ($members) {
$this->assertCount(2, $members); $this->assertCount(2, $members);
}); });
@ -148,15 +140,11 @@ class PresenceChannelTest extends TestCase
'data' => json_encode(['user_id' => 2]), 'data' => json_encode(['user_id' => 2]),
]); ]);
$this->channelManager $this->channelManager->getGlobalConnectionsCount('1234', 'presence-channel')->then(function ($total) {
->getGlobalConnectionsCount('1234', 'presence-channel')
->then(function ($total) {
$this->assertEquals(1, $total); $this->assertEquals(1, $total);
}); });
$this->channelManager $this->channelManager->getChannelMembers('1234', 'presence-channel')->then(function ($members) use ($rick) {
->getChannelMembers('1234', 'presence-channel')
->then(function ($members) use ($rick) {
$this->assertCount(1, $members); $this->assertCount(1, $members);
$this->assertEquals(1, $members[$rick->socketId]->user_id); $this->assertEquals(1, $members[$rick->socketId]->user_id);
}); });
@ -166,9 +154,7 @@ class PresenceChannelTest extends TestCase
{ {
$connection = $this->newPresenceConnection('presence-channel', ['user_id' => 1]); $connection = $this->newPresenceConnection('presence-channel', ['user_id' => 1]);
$this->channelManager $this->channelManager->getGlobalConnectionsCount('1234', 'presence-channel')->then(function ($total) {
->getGlobalConnectionsCount('1234', 'presence-channel')
->then(function ($total) {
$this->assertEquals(1, $total); $this->assertEquals(1, $total);
}); });
@ -181,12 +167,10 @@ class PresenceChannelTest extends TestCase
$this->pusherServer->onMessage($connection, $message); $this->pusherServer->onMessage($connection, $message);
$this->channelManager $this->channelManager->getGlobalConnectionsCount('1234', 'presence-channel')->then(function ($total) {
->getGlobalConnectionsCount('1234', 'presence-channel')
->then(function ($total) {
$this->assertEquals(0, $total); $this->assertEquals(0, $total);
}); });
} }
public function test_can_whisper_to_private_channel() public function test_can_whisper_to_private_channel()
{ {
@ -229,15 +213,11 @@ class PresenceChannelTest extends TestCase
$rick = $this->newPresenceConnection('presence-channel', ['user_id' => 1]); $rick = $this->newPresenceConnection('presence-channel', ['user_id' => 1]);
$morty = $this->newPresenceConnection('presence-channel', ['user_id' => 2]); $morty = $this->newPresenceConnection('presence-channel', ['user_id' => 2]);
$this->statisticsCollector $this->statisticsCollector->getStatistics()->then(function ($statistics) {
->getStatistics()
->then(function ($statistics) {
$this->assertCount(1, $statistics); $this->assertCount(1, $statistics);
}); });
$this->statisticsCollector $this->statisticsCollector->getAppStatistics('1234')->then(function ($statistic) {
->getAppStatistics('1234')
->then(function ($statistic) {
$this->assertEquals([ $this->assertEquals([
'peak_connections_count' => 2, 'peak_connections_count' => 2,
'websocket_messages_count' => 2, 'websocket_messages_count' => 2,
@ -252,9 +232,7 @@ class PresenceChannelTest extends TestCase
$this->newPresenceConnection('presence-channel', ['user_id' => 1]); $this->newPresenceConnection('presence-channel', ['user_id' => 1]);
$this->newPresenceConnection('presence-channel-2', ['user_id' => 2]); $this->newPresenceConnection('presence-channel-2', ['user_id' => 2]);
$this->channelManager $this->channelManager->getLocalConnections()->then(function ($connections) {
->getLocalConnections()
->then(function ($connections) {
$this->assertCount(2, $connections); $this->assertCount(2, $connections);
foreach ($connections as $connection) { foreach ($connections as $connection) {
@ -304,15 +282,11 @@ class PresenceChannelTest extends TestCase
$this->assertCount(0, $sockets); $this->assertCount(0, $sockets);
}); });
$this->channelManager $this->channelManager->getMemberSockets('2', '1234', 'presence-channel')->then(function ($sockets) {
->getMemberSockets('2', '1234', 'presence-channel')
->then(function ($sockets) {
$this->assertCount(0, $sockets); $this->assertCount(0, $sockets);
}); });
$this->channelManager $this->channelManager->getMemberSockets('observer', '1234', 'presence-channel')->then(function ($sockets) {
->getMemberSockets('observer', '1234', 'presence-channel')
->then(function ($sockets) {
$this->assertCount(1, $sockets); $this->assertCount(1, $sockets);
}); });
} }
@ -400,8 +374,7 @@ class PresenceChannelTest extends TestCase
$this->getSubscribeClient() $this->getSubscribeClient()
->assertNothingDispatched(); ->assertNothingDispatched();
$this->getPublishClient() $this->getPublishClient()->assertCalledWithArgs('publish', [
->assertCalledWithArgs('publish', [
$this->channelManager->getRedisKey('1234', 'presence-channel'), $this->channelManager->getRedisKey('1234', 'presence-channel'),
$message->getPayload(), $message->getPayload(),
]); ]);
@ -438,9 +411,7 @@ class PresenceChannelTest extends TestCase
$this->assertSame([], json_decode($response->getContent(), true)); $this->assertSame([], json_decode($response->getContent(), true));
$this->statisticsCollector $this->statisticsCollector->getAppStatistics('1234')->then(function ($statistic) {
->getAppStatistics('1234')
->then(function ($statistic) {
$this->assertEquals([ $this->assertEquals([
'peak_connections_count' => 1, 'peak_connections_count' => 1,
'websocket_messages_count' => 1, 'websocket_messages_count' => 1,
@ -480,9 +451,7 @@ class PresenceChannelTest extends TestCase
$this->assertSame([], json_decode($response->getContent(), true)); $this->assertSame([], json_decode($response->getContent(), true));
if (method_exists($this->channelManager, 'getPublishClient')) { if (method_exists($this->channelManager, 'getPublishClient')) {
$this->channelManager $this->channelManager->getPublishClient()->assertCalledWithArgsCount(1, 'publish', [
->getPublishClient()
->assertCalledWithArgsCount(1, 'publish', [
$this->channelManager->getRedisKey('1234', 'presence-channel'), $this->channelManager->getRedisKey('1234', 'presence-channel'),
json_encode([ json_encode([
'event' => 'some-event', 'event' => 'some-event',
@ -528,9 +497,7 @@ class PresenceChannelTest extends TestCase
$this->assertSame([], json_decode($response->getContent(), true)); $this->assertSame([], json_decode($response->getContent(), true));
if (method_exists($this->channelManager, 'getPublishClient')) { if (method_exists($this->channelManager, 'getPublishClient')) {
$this->channelManager $this->channelManager->getPublishClient()->assertCalledWithArgsCount(1, 'publish', [
->getPublishClient()
->assertCalledWithArgsCount(1, 'publish', [
$this->channelManager->getRedisKey('1234', 'presence-channel'), $this->channelManager->getRedisKey('1234', 'presence-channel'),
json_encode([ json_encode([
'event' => 'some-event', 'event' => 'some-event',

View File

@ -48,9 +48,7 @@ class PrivateChannelTest extends TestCase
'channel' => 'private-channel', 'channel' => 'private-channel',
]); ]);
$this->channelManager $this->channelManager->getGlobalConnectionsCount('1234', 'private-channel')->then(function ($total) {
->getGlobalConnectionsCount('1234', 'private-channel')
->then(function ($total) {
$this->assertEquals(1, $total); $this->assertEquals(1, $total);
}); });
} }
@ -59,9 +57,7 @@ class PrivateChannelTest extends TestCase
{ {
$connection = $this->newPrivateConnection('private-channel'); $connection = $this->newPrivateConnection('private-channel');
$this->channelManager $this->channelManager->getGlobalConnectionsCount('1234', 'private-channel')->then(function ($total) {
->getGlobalConnectionsCount('1234', 'private-channel')
->then(function ($total) {
$this->assertEquals(1, $total); $this->assertEquals(1, $total);
}); });
@ -74,9 +70,7 @@ class PrivateChannelTest extends TestCase
$this->pusherServer->onMessage($connection, $message); $this->pusherServer->onMessage($connection, $message);
$this->channelManager $this->channelManager->getGlobalConnectionsCount('1234', 'private-channel')->then(function ($total) {
->getGlobalConnectionsCount('1234', 'private-channel')
->then(function ($total) {
$this->assertEquals(0, $total); $this->assertEquals(0, $total);
}); });
} }
@ -122,15 +116,11 @@ class PrivateChannelTest extends TestCase
$rick = $this->newPrivateConnection('private-channel'); $rick = $this->newPrivateConnection('private-channel');
$morty = $this->newPrivateConnection('private-channel'); $morty = $this->newPrivateConnection('private-channel');
$this->statisticsCollector $this->statisticsCollector->getStatistics()->then(function ($statistics) {
->getStatistics()
->then(function ($statistics) {
$this->assertCount(1, $statistics); $this->assertCount(1, $statistics);
}); });
$this->statisticsCollector $this->statisticsCollector->getAppStatistics('1234')->then(function ($statistic) {
->getAppStatistics('1234')
->then(function ($statistic) {
$this->assertEquals([ $this->assertEquals([
'peak_connections_count' => 2, 'peak_connections_count' => 2,
'websocket_messages_count' => 2, 'websocket_messages_count' => 2,
@ -145,9 +135,7 @@ class PrivateChannelTest extends TestCase
$this->newPrivateConnection('private-channel'); $this->newPrivateConnection('private-channel');
$this->newPrivateConnection('private-channel-2'); $this->newPrivateConnection('private-channel-2');
$this->channelManager $this->channelManager->getLocalConnections()->then(function ($connections) {
->getLocalConnections()
->then(function ($connections) {
$this->assertCount(2, $connections); $this->assertCount(2, $connections);
foreach ($connections as $connection) { foreach ($connections as $connection) {
@ -220,8 +208,7 @@ class PrivateChannelTest extends TestCase
$this->getSubscribeClient() $this->getSubscribeClient()
->assertNothingDispatched(); ->assertNothingDispatched();
$this->getPublishClient() $this->getPublishClient()->assertCalledWithArgs('publish', [
->assertCalledWithArgs('publish', [
$this->channelManager->getRedisKey('1234', 'private-channel'), $this->channelManager->getRedisKey('1234', 'private-channel'),
$message->getPayload(), $message->getPayload(),
]); ]);
@ -258,9 +245,7 @@ class PrivateChannelTest extends TestCase
$this->assertSame([], json_decode($response->getContent(), true)); $this->assertSame([], json_decode($response->getContent(), true));
$this->statisticsCollector $this->statisticsCollector->getAppStatistics('1234')->then(function ($statistic) {
->getAppStatistics('1234')
->then(function ($statistic) {
$this->assertEquals([ $this->assertEquals([
'peak_connections_count' => 1, 'peak_connections_count' => 1,
'websocket_messages_count' => 1, 'websocket_messages_count' => 1,
@ -300,9 +285,7 @@ class PrivateChannelTest extends TestCase
$this->assertSame([], json_decode($response->getContent(), true)); $this->assertSame([], json_decode($response->getContent(), true));
if (method_exists($this->channelManager, 'getPublishClient')) { if (method_exists($this->channelManager, 'getPublishClient')) {
$this->channelManager $this->channelManager->getPublishClient()->assertCalledWithArgsCount(1, 'publish', [
->getPublishClient()
->assertCalledWithArgsCount(1, 'publish', [
$this->channelManager->getRedisKey('1234', 'private-channel'), $this->channelManager->getRedisKey('1234', 'private-channel'),
json_encode([ json_encode([
'event' => 'some-event', 'event' => 'some-event',
@ -348,9 +331,7 @@ class PrivateChannelTest extends TestCase
$this->assertSame([], json_decode($response->getContent(), true)); $this->assertSame([], json_decode($response->getContent(), true));
if (method_exists($this->channelManager, 'getPublishClient')) { if (method_exists($this->channelManager, 'getPublishClient')) {
$this->channelManager $this->channelManager->getPublishClient()->assertCalledWithArgsCount(1, 'publish', [
->getPublishClient()
->assertCalledWithArgsCount(1, 'publish', [
$this->channelManager->getRedisKey('1234', 'private-channel'), $this->channelManager->getRedisKey('1234', 'private-channel'),
json_encode([ json_encode([
'event' => 'some-event', 'event' => 'some-event',

View File

@ -14,9 +14,7 @@ class PublicChannelTest extends TestCase
{ {
$connection = $this->newActiveConnection(['public-channel']); $connection = $this->newActiveConnection(['public-channel']);
$this->channelManager $this->channelManager->getGlobalConnectionsCount('1234', 'public-channel')->then(function ($total) {
->getGlobalConnectionsCount('1234', 'public-channel')
->then(function ($total) {
$this->assertEquals(1, $total); $this->assertEquals(1, $total);
}); });
@ -40,9 +38,7 @@ class PublicChannelTest extends TestCase
{ {
$connection = $this->newActiveConnection(['public-channel']); $connection = $this->newActiveConnection(['public-channel']);
$this->channelManager $this->channelManager->getGlobalConnectionsCount('1234', 'public-channel')->then(function ($total) {
->getGlobalConnectionsCount('1234', 'public-channel')
->then(function ($total) {
$this->assertEquals(1, $total); $this->assertEquals(1, $total);
}); });
@ -55,9 +51,7 @@ class PublicChannelTest extends TestCase
$this->pusherServer->onMessage($connection, $message); $this->pusherServer->onMessage($connection, $message);
$this->channelManager $this->channelManager->getGlobalConnectionsCount('1234', 'public-channel')->then(function ($total) {
->getGlobalConnectionsCount('1234', 'public-channel')
->then(function ($total) {
$this->assertEquals(0, $total); $this->assertEquals(0, $total);
}); });
} }
@ -103,15 +97,11 @@ class PublicChannelTest extends TestCase
$rick = $this->newActiveConnection(['public-channel']); $rick = $this->newActiveConnection(['public-channel']);
$morty = $this->newActiveConnection(['public-channel']); $morty = $this->newActiveConnection(['public-channel']);
$this->statisticsCollector $this->statisticsCollector->getStatistics()->then(function ($statistics) {
->getStatistics()
->then(function ($statistics) {
$this->assertCount(1, $statistics); $this->assertCount(1, $statistics);
}); });
$this->statisticsCollector $this->statisticsCollector->getAppStatistics('1234')->then(function ($statistic) {
->getAppStatistics('1234')
->then(function ($statistic) {
$this->assertEquals([ $this->assertEquals([
'peak_connections_count' => 2, 'peak_connections_count' => 2,
'websocket_messages_count' => 2, 'websocket_messages_count' => 2,
@ -126,9 +116,7 @@ class PublicChannelTest extends TestCase
$this->newActiveConnection(['public-channel']); $this->newActiveConnection(['public-channel']);
$this->newActiveConnection(['public-channel-2']); $this->newActiveConnection(['public-channel-2']);
$this->channelManager $this->channelManager->getLocalConnections()->then(function ($connections) {
->getLocalConnections()
->then(function ($connections) {
$this->assertCount(2, $connections); $this->assertCount(2, $connections);
foreach ($connections as $connection) { foreach ($connections as $connection) {
@ -201,8 +189,7 @@ class PublicChannelTest extends TestCase
$this->getSubscribeClient() $this->getSubscribeClient()
->assertNothingDispatched(); ->assertNothingDispatched();
$this->getPublishClient() $this->getPublishClient()->assertCalledWithArgs('publish', [
->assertCalledWithArgs('publish', [
$this->channelManager->getRedisKey('1234', 'public-channel'), $this->channelManager->getRedisKey('1234', 'public-channel'),
$message->getPayload(), $message->getPayload(),
]); ]);
@ -239,9 +226,7 @@ class PublicChannelTest extends TestCase
$this->assertSame([], json_decode($response->getContent(), true)); $this->assertSame([], json_decode($response->getContent(), true));
$this->statisticsCollector $this->statisticsCollector->getAppStatistics('1234')->then(function ($statistic) {
->getAppStatistics('1234')
->then(function ($statistic) {
$this->assertEquals([ $this->assertEquals([
'peak_connections_count' => 1, 'peak_connections_count' => 1,
'websocket_messages_count' => 1, 'websocket_messages_count' => 1,
@ -281,9 +266,7 @@ class PublicChannelTest extends TestCase
$this->assertSame([], json_decode($response->getContent(), true)); $this->assertSame([], json_decode($response->getContent(), true));
if (method_exists($this->channelManager, 'getPublishClient')) { if (method_exists($this->channelManager, 'getPublishClient')) {
$this->channelManager $this->channelManager->getPublishClient()->assertCalledWithArgsCount(1, 'publish', [
->getPublishClient()
->assertCalledWithArgsCount(1, 'publish', [
$this->channelManager->getRedisKey('1234', 'public-channel'), $this->channelManager->getRedisKey('1234', 'public-channel'),
json_encode([ json_encode([
'event' => 'some-event', 'event' => 'some-event',
@ -329,9 +312,7 @@ class PublicChannelTest extends TestCase
$this->assertSame([], json_decode($response->getContent(), true)); $this->assertSame([], json_decode($response->getContent(), true));
if (method_exists($this->channelManager, 'getPublishClient')) { if (method_exists($this->channelManager, 'getPublishClient')) {
$this->channelManager $this->channelManager->getPublishClient()->assertCalledWithArgsCount(1, 'publish', [
->getPublishClient()
->assertCalledWithArgsCount(1, 'publish', [
$this->channelManager->getRedisKey('1234', 'public-channel'), $this->channelManager->getRedisKey('1234', 'public-channel'),
json_encode([ json_encode([
'event' => 'some-event', 'event' => 'some-event',

View File

@ -19,29 +19,21 @@ class RedisPongRemovalTest extends TestCase
// Make the connection look like it was lost 1 day ago. // Make the connection look like it was lost 1 day ago.
$this->channelManager->addConnectionToSet($obsoleteConnection, Carbon::now()->subDays(1)); $this->channelManager->addConnectionToSet($obsoleteConnection, Carbon::now()->subDays(1));
$this->channelManager $this->channelManager->getGlobalConnectionsCount('1234', 'public-channel')->then(function ($count) {
->getGlobalConnectionsCount('1234', 'public-channel')
->then(function ($count) {
$this->assertEquals(2, $count); $this->assertEquals(2, $count);
}); });
$this->channelManager $this->channelManager->getConnectionsFromSet(0, Carbon::now()->subMinutes(2)->format('U'))->then(function ($expiredConnections) {
->getConnectionsFromSet(0, Carbon::now()->subMinutes(2)->format('U'))
->then(function ($expiredConnections) {
$this->assertCount(1, $expiredConnections); $this->assertCount(1, $expiredConnections);
}); });
$this->channelManager->removeObsoleteConnections(); $this->channelManager->removeObsoleteConnections();
$this->channelManager $this->channelManager->getGlobalConnectionsCount('1234', 'public-channel')->then(function ($count) {
->getGlobalConnectionsCount('1234', 'public-channel')
->then(function ($count) {
$this->assertEquals(1, $count); $this->assertEquals(1, $count);
}); });
$this->channelManager $this->channelManager->getConnectionsFromSet(0, Carbon::now()->subMinutes(2)->format('U'))->then(function ($expiredConnections) {
->getConnectionsFromSet(0, Carbon::now()->subMinutes(2)->format('U'))
->then(function ($expiredConnections) {
$this->assertCount(0, $expiredConnections); $this->assertCount(0, $expiredConnections);
}); });
} }
@ -59,29 +51,21 @@ class RedisPongRemovalTest extends TestCase
// Make the connection look like it was lost 1 day ago. // Make the connection look like it was lost 1 day ago.
$this->channelManager->addConnectionToSet($obsoleteConnection, Carbon::now()->subDays(1)); $this->channelManager->addConnectionToSet($obsoleteConnection, Carbon::now()->subDays(1));
$this->channelManager $this->channelManager->getGlobalConnectionsCount('1234', 'private-channel')->then(function ($count) {
->getGlobalConnectionsCount('1234', 'private-channel')
->then(function ($count) {
$this->assertEquals(2, $count); $this->assertEquals(2, $count);
}); });
$this->channelManager $this->channelManager->getConnectionsFromSet(0, Carbon::now()->subMinutes(2)->format('U'))->then(function ($expiredConnections) {
->getConnectionsFromSet(0, Carbon::now()->subMinutes(2)->format('U'))
->then(function ($expiredConnections) {
$this->assertCount(1, $expiredConnections); $this->assertCount(1, $expiredConnections);
}); });
$this->channelManager->removeObsoleteConnections(); $this->channelManager->removeObsoleteConnections();
$this->channelManager $this->channelManager->getGlobalConnectionsCount('1234', 'private-channel')->then(function ($count) {
->getGlobalConnectionsCount('1234', 'private-channel')
->then(function ($count) {
$this->assertEquals(1, $count); $this->assertEquals(1, $count);
}); });
$this->channelManager $this->channelManager->getConnectionsFromSet(0, Carbon::now()->subMinutes(2)->format('U'))->then(function ($expiredConnections) {
->getConnectionsFromSet(0, Carbon::now()->subMinutes(2)->format('U'))
->then(function ($expiredConnections) {
$this->assertCount(0, $expiredConnections); $this->assertCount(0, $expiredConnections);
}); });
} }
@ -99,41 +83,29 @@ class RedisPongRemovalTest extends TestCase
// Make the connection look like it was lost 1 day ago. // Make the connection look like it was lost 1 day ago.
$this->channelManager->addConnectionToSet($obsoleteConnection, Carbon::now()->subDays(1)); $this->channelManager->addConnectionToSet($obsoleteConnection, Carbon::now()->subDays(1));
$this->channelManager $this->channelManager->getGlobalConnectionsCount('1234', 'presence-channel')->then(function ($count) {
->getGlobalConnectionsCount('1234', 'presence-channel')
->then(function ($count) {
$this->assertEquals(2, $count); $this->assertEquals(2, $count);
}); });
$this->channelManager $this->channelManager->getConnectionsFromSet(0, Carbon::now()->subMinutes(2)->format('U'))->then(function ($expiredConnections) {
->getConnectionsFromSet(0, Carbon::now()->subMinutes(2)->format('U'))
->then(function ($expiredConnections) {
$this->assertCount(1, $expiredConnections); $this->assertCount(1, $expiredConnections);
}); });
$this->channelManager $this->channelManager->getChannelMembers('1234', 'presence-channel')->then(function ($members) {
->getChannelMembers('1234', 'presence-channel')
->then(function ($members) {
$this->assertCount(2, $members); $this->assertCount(2, $members);
}); });
$this->channelManager->removeObsoleteConnections(); $this->channelManager->removeObsoleteConnections();
$this->channelManager $this->channelManager->getGlobalConnectionsCount('1234', 'presence-channel')->then(function ($count) {
->getGlobalConnectionsCount('1234', 'presence-channel')
->then(function ($count) {
$this->assertEquals(1, $count); $this->assertEquals(1, $count);
}); });
$this->channelManager $this->channelManager->getConnectionsFromSet(0, Carbon::now()->subMinutes(2)->format('U'))->then(function ($expiredConnections) {
->getConnectionsFromSet(0, Carbon::now()->subMinutes(2)->format('U'))
->then(function ($expiredConnections) {
$this->assertCount(0, $expiredConnections); $this->assertCount(0, $expiredConnections);
}); });
$this->channelManager $this->channelManager->getChannelMembers('1234', 'presence-channel')->then(function ($members) {
->getChannelMembers('1234', 'presence-channel')
->then(function ($members) {
$this->assertCount(1, $members); $this->assertCount(1, $members);
}); });
} }