cnastasi / async_http_client
This simple client permits to execute multiple request in parallel, in a non blocking way.
Installs: 21
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 4
Forks: 0
Open Issues: 1
Language:HTML
Requires
- php: >=5.6
- react/dns: ^0.4.3
- react/promise: ^2.5
- react/react: ^0.4
Requires (Dev)
- mockery/mockery: dev-master
- phpmetrics/phpmetrics: ^1.10
- phpunit/phpunit: ^5.7
This package is auto-updated.
Last update: 2024-12-18 04:00:29 UTC
README
Async Http Client
This simple client permits to execute multiple request in parallel, in a non blocking way.
Prerequisites
- composer
- php >=5.6
Installation
composer require cnastasi\async_http_client
Usage
use AsyncHttpClient\Core\AsyncHttpClient; use AsyncHttpClient\Core\AsyncHttpClientDefault; use AsyncHttpClient\Helper\TimeDefault; use AsyncHttpClient\Logger\AsyncHttpLoggerDefault; use AsyncHttpClient\Service\AsyncHttpGenericService; $loop = \React\EventLoop\Factory::create(); $dnsResolverFactory = new \React\Dns\Resolver\Factory(); $dnsResolver = $dnsResolverFactory->createCached('8.8.8.8', $loop); $factory = new \React\HttpClient\Factory(); $client = $factory->create($loop, $dnsResolver); $logger = new AsyncHttpLoggerDefault(new TimeDefault()); $asyncClient = new AsyncHttpClientDefault($client, $loop, $logger); $service = new AsyncHttpGenericService('GET', 'http://www.google.it', null, function ($data, $request) { // Do something }); $anotherService = new AsyncHttpGenericService('POST', 'http://www.another.service.com', http_build_query(['postfield1' => 'value']) , function ($data, $request) { // Do something more }); $asyncClient->addService($service); $asyncClient->addService($anotherService); $asyncClient->send(); // code execution will block here and the HTTP calls will be dispatched in parallel // the code execution will continue only after all http calls are dispatched and returned (callback called) // do other stuff here
Contributing
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :D
History
That's the way how I survived the last Christmas :P
Credits
Thanks to Fabio Lombardo