public function __construct(HttpEndpoint $endpoint, SocketServer $server, Awaitable $runner) { $this->endpoint = $endpoint; $this->server = $server; $this->runner = $runner; $this->socketFactory = $server->createSocketFactory(); }
protected function clientTask(SocketServer $server, callable $callback) : \Generator { $factory = $server->createSocketFactory(); if ($this->encrypted) { $factory->setCertificateAuthority(AsyncTestCase::getKoolKodeCertAuthorityFile()); } $socket = (yield $factory->createSocketStream(2, $this->encrypted)); try { $result = $callback($this->raw ? $socket->getSocket() : $socket); if ($result instanceof \Generator) { yield from $result; } } finally { $socket->close(); } }