thruster / http-server
Thruster HttpServer Component
0.4.0
2016-05-31 11:23 UTC
Requires
- php: >=7.0
- psr/http-message: ~1.0
- thruster/event-emitter: ~1.0
- thruster/http: ~0.1
- thruster/http-message: ^1.1
- thruster/http-modifiers: ~1.0
- thruster/server-application: ~0.1
- thruster/socket: ~1.0
Requires (Dev)
- phpunit/phpunit: ~5.0
This package is auto-updated.
Last update: 2024-12-14 03:10:45 UTC
README
[] (https://github.com/ThrusterIO/http-server/releases) [] (LICENSE) [] (https://travis-ci.org/ThrusterIO/http-server) [] (https://scrutinizer-ci.com/g/ThrusterIO/http-server) [] (https://scrutinizer-ci.com/g/ThrusterIO/http-server) [] (https://packagist.org/packages/thruster/http-server)
The Thruster HttpServer Component.
Install
Via Composer
$ composer require thruster/http-server
Usage
HTTP Server accepts Thruster Socket Server, ServerApplicationInteface
implementing object and EventLoop
use GuzzleHttp\Psr7\Response; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; use Thruster\Component\EventLoop\EventLoop; use Thruster\Component\Socket\Server; use Thruster\Component\HttpServer\HttpServer; use Thruster\Component\ServerApplication\SynchronousServerApplication; $application = new class extends SynchronousServerApplication { /** * {@inheritDoc} */ public function processRequestSynchronously(ServerRequestInterface $request) : ResponseInterface { $response = new Response(200); $response->getBody()->write('Hello World!'); return $response; } public function preloadApplication() { } }; $loop = new EventLoop(); $socket = new Server($loop); $httpServer = HttpServer::create($application) ->attachTo($socket) ->enableDebug(); $socket->listen(1337, '0.0.0.0'); $loop->run();
Benchmark results
Server Software:
Server Hostname: 127.0.0.1
Server Port: 1337
Document Path: /
Document Length: 22 bytes
Concurrency Level: 10
Time taken for tests: 2.148 seconds
Complete requests: 10000
Failed requests: 0
Total transferred: 1340000 bytes
HTML transferred: 220000 bytes
Requests per second: 4655.03 [#/sec] (mean)
Time per request: 2.148 [ms] (mean)
Time per request: 0.215 [ms] (mean, across all concurrent requests)
Transfer rate: 609.15 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 0
Processing: 1 2 0.9 2 11
Waiting: 1 2 0.9 2 11
Total: 1 2 0.9 2 11
Percentage of the requests served within a certain time (ms)
50% 2
66% 2
75% 2
80% 2
90% 3
95% 3
98% 5
99% 7
100% 11 (longest request)
Testing
$ composer test
Contributing
Please see CONTRIBUTING and CONDUCT for details.
License
Please see License File for more information.