Big request body support.

This commit is contained in:
Alexander Pankratov 2019-06-24 17:13:00 +03:00
parent e93a5a8891
commit f7e79e7d5c

View File

@ -28,13 +28,18 @@ class Server
Socket\listen("{$this->config['address']}:{$this->config['port']}"),
];
$server = new Amp\Http\Server\Server($sockets, new CallableRequestHandler(function (Request $request) use($client) {
$server = new Amp\Http\Server\Server(
$sockets,
new CallableRequestHandler(function (Request $request) use($client) {
//На каждый запрос должны создаваться новые экземпляры классов парсера и коллбеков,
//иначе их данные будут в области видимости всех запросов.
//Телеграм клиент инициализируется 1 раз и используется во всех запросах.
$body = yield $request->getBody()->read();
$body = '';
while ($chunk = yield $request->getBody()->read()) {
$body .= $chunk;
}
$requestCallback = new RequestCallback($client, $request, $body);
@ -53,7 +58,12 @@ class Server
);
}), new Logger(LogLevel::DEBUG));
}),
new Logger(LogLevel::DEBUG),
(new Amp\Http\Server\Options())
->withCompression()
->withBodySizeLimit(30*1024*1024)
);
yield $server->start();