示例#1
0
 public function handleRequest(ConnectionInterface $conn, Request $request, $bodyBuffer)
 {
     $response = new HttpResponse($conn);
     $response->on('close', array($request, 'close'));
     if (!$this->listeners('request')) {
         $response->end();
         return;
     }
     $this->emit('request', array($request, $response));
     $request->emit('data', array($bodyBuffer));
 }
示例#2
0
 /**
  * @param \React\Http\Request $request
  * @param HttpResponse        $response
  *
  * @return bool returns true if successfully served
  */
 protected function serveStatic(\React\Http\Request $request, HttpResponse $response)
 {
     $filePath = $this->getBridge()->getStaticDirectory() . $request->getPath();
     if (substr($filePath, -4) !== '.php' && is_file($filePath)) {
         $mTime = filemtime($filePath);
         if (isset($request->getHeaders()['If-Modified-Since'])) {
             $ifModifiedSince = $request->getHeaders()['If-Modified-Since'];
             if ($ifModifiedSince && strtotime($ifModifiedSince) === $mTime) {
                 // Client's cache IS current, so we just respond '304 Not Modified'.
                 $response->writeHead(304, ['Last-Modified' => gmdate('D, d M Y H:i:s', $mTime) . ' GMT']);
                 $response->end();
                 return true;
             }
         }
         $expires = 3600;
         //1 h
         $response->writeHead(200, ['Content-Type' => $this->mimeContentType($filePath), 'Content-Length' => filesize($filePath), 'Pragma' => 'public', 'Cache-Control' => 'max-age=' . $expires, 'Last-Modified' => gmdate('D, d M Y H:i:s', $mTime) . ' GMT', 'Expires' => gmdate('D, d M Y H:i:s', time() + $expires) . ' GMT']);
         $response->end(file_get_contents($filePath));
         return true;
     }
     return false;
 }
示例#3
0
 /**
  * @param \React\Http\Request $request
  * @param HttpResponse $response
  * @return bool returns true if successfully served
  */
 protected function serveStatic(\React\Http\Request $request, HttpResponse $response)
 {
     $filePath = $this->getBridge()->getStaticDirectory() . $request->getPath();
     if (substr($filePath, -4) !== '.php' && is_file($filePath)) {
         $response->writeHead(200, ['Content-Type' => $this->mimeContentType($filePath), 'Content-Length' => filesize($filePath)]);
         $response->end(file_get_contents($filePath));
         return true;
     }
     return false;
 }