/** * @return Bundle\ServerBundle\RequestInterface */ public function readRequest() { if (null !== $this->request) { return $this->request; } $this->lastAction = time(); $message = $this->read(); $message = trim($message); if (empty($message)) { $this->disconnect(); return false; } try { // parse HTTP message $request = new Request($message); } catch (\InvalidArgumentException $e) { // @TODO add 400 (Bad Request) response $this->disconnect(); return false; } // Connection: Keep-Alive check $httpVersion = $request->getHttpVersion(); $connection = strtolower($request->getHeader('Connection')); if (Request::HTTP_11 == $httpVersion && 'close' != $connection || Request::HTTP_10 == $httpVersion && 'keep-alive' == $connection) { $this->keepAlive = true; } return $this->request = $request; }