<?php namespace Common\Websockets\API; use Illuminate\Support\Collection; class ReverbAPI extends WebsocketProviderAPI { public function getAllChannels(): Collection { $appId = config('broadcasting.connections.reverb.app_id'); $response = $this->makeReverbRequest("apps/$appId/channels"); return collect($response['channels'] ?? []); } public function getActiveUsersInChannel(string $channel): Collection { $appId = config('broadcasting.connections.reverb.app_id'); $response = $this->makeReverbRequest( "apps/$appId/channels/presence-$channel/users", ); return collect($response['users'] ?? []); } protected function makeReverbRequest(string $path) { $scheme = config('broadcasting.connections.reverb.options.scheme'); $host = config('broadcasting.connections.reverb.options.host'); $port = config('broadcasting.connections.reverb.options.port'); return $this->makeRequestWithCaching("$scheme://$host:$port/$path"); } }