socket = $socketConnection; $this->proxyManager = $proxyManager; $this->socket->on('message', function (Message $message) { $decodedEntry = json_decode($message); $this->emit($decodedEntry->event ?? '', [$decodedEntry]); if (method_exists($this, $decodedEntry->event ?? '')) { call_user_func([$this, $decodedEntry->event], $decodedEntry); } }); } public function authenticated($data) { $this->clientId = $data->client_id; } public function createProxy($data) { $this->proxyManager->createProxy($this->clientId, $data); } public function authenticate(string $sharedHost, string $subdomain) { $this->socket->send(json_encode([ 'event' => 'authenticate', 'data' => [ 'host' => $sharedHost, 'subdomain' => empty($subdomain) ? null : $subdomain, ], ])); } public function ping() { $this->socket->send(json_encode([ 'event' => 'pong', ])); } }