/**
  * @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;
 }
示例#2
0
 /**
  * @param string $httpVersion
  *
  * @throws \InvalidArgumentException If the HTTP version is not valid
  */
 public function setHttpVersion($httpVersion)
 {
     if (!in_array($httpVersion, Request::getHttpVersions())) {
         throw new \InvalidArgumentException(sprintf('HTTP "%s" version is not valid', $httpVersion));
     }
     $this->httpVersion = $httpVersion;
 }