private function importClient($socket, $ip, $port)
{
$client = new Client();
$client->id = (int) $socket;
$client->socket = $socket;
$client->options = $this->options;
$client->exporter = $this->exporter;
$client->remainingKeepAlives = $this->options->maxKeepAliveRequests ?: PHP_INT_MAX;
$client->clientAddr = $ip;
$client->clientPort = $port;
$serverName = stream_socket_get_name($socket, false);
$portStartPos = strrpos($serverName, ":");
$client->serverAddr = substr($serverName, 0, $portStartPos);
$client->serverPort = substr($serverName, $portStartPos + 1);
$meta = stream_get_meta_data($socket);
$client->cryptoInfo = $meta["crypto"] ?? [];
$client->isEncrypted = (bool) $client->cryptoInfo;
$client->readWatcher = \Amp\onReadable($socket, $this->onReadable, $options = ["enable" => true, "cb_data" => $client]);
$client->writeWatcher = \Amp\onWritable($socket, $this->onWritable, $options = ["enable" => false, "cb_data" => $client]);
$this->clients[$client->id] = $client;
$client->httpDriver = $this->vhosts->selectHttpDriver($client->serverAddr, $client->serverPort);
$client->requestParser = $client->httpDriver->parser($client);
$client->requestParser->valid();
$this->renewKeepAliveTimeout($client);
}