pusherServer = app(WebSocketHandler::class); $this->channelManager = app(ChannelManager::class); } protected function getPackageProviders($app) { return [WebSocketsServiceProvider::class]; } protected function getEnvironmentSetUp($app) { $app['config']->set('websockets.clients', [ [ 'name' => 'Test Client', 'app_id' => 1234, 'app_key' => 'TestKey', 'app_secret' => 'TestSecret' ] ]); } protected function getWebSocketConnection(string $url = '/?appKey=TestKey'): Connection { $connection = new Connection(); $connection->httpRequest = new Request('GET', $url); return $connection; } protected function getConnectedWebSocketConnection(array $channelsToJoin = [], string $url = '/?appKey=TestKey'): Connection { $connection = new Connection(); $connection->httpRequest = new Request('GET', $url); $this->pusherServer->onOpen($connection); foreach ($channelsToJoin as $channel) { $message = new Message(json_encode([ 'event' => 'pusher:subscribe', 'data' => [ 'channel' => $channel ], ])); $this->pusherServer->onMessage($connection, $message); } return $connection; } protected function getChannel(ConnectionInterface $connection, string $channelId) { return $this->channelManager->findOrCreate($connection->client->appId, $channelId); } }