Пример #1
0
 /**
  * On a new connection instantiate a new RequestParser and listen for the data event until such time as all headers
  * are parsed.  When this happens a Request object will be generated and Server::handleRequest will be called.
  *
  * @param ConnectionInterface $conn
  */
 protected function handleNewConnection(ConnectionInterface $conn)
 {
     $parser = new RequestParser();
     $parser->on('headers', function (ServerRequest $request) use($conn, $parser) {
         // attach remote ip to the request as metadata
         $request = $request->withConnection($conn);
         $conn->removeListener('data', array($parser, 'feed'));
         $this->handleRequest($conn, $request);
     });
     $conn->on('data', array($parser, 'feed'));
 }
 public function testBodyShouldNotOverflowHeader()
 {
     $error = null;
     $parser = new RequestParser();
     $parser->on('headers', $this->expectCallableOnce());
     $parser->on('error', function ($message) use(&$error) {
         $error = $message;
     });
     $data = str_repeat('A', 4097);
     $parser->feed($this->createAdvancedPostRequest() . $data);
     $this->assertNull($error);
 }