private function onMessage(Request $request, string $buffer = ''): Promise
    {
        \assert($this->logger->debug(\sprintf(
            "%s %s HTTP/%s @ %s:%s",
            $request->getMethod(),
            $request->getUri(),
            $request->getProtocolVersion(),
            $this->clientAddress,
            $this->clientPort
        )) || true);

        $this->pendingResponses++;

        return new Coroutine($this->respond($request, $buffer));
    }