swoole_http_client.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. ini_set('display_errors',1);
  3. //error_reporting(E_ALL);
  4. error_reporting(0);
  5. $http = new swoole_http_server("", 9501, SWOOLE_BASE);
  6. $http->set([
  7. //'worker_num' => 2,
  8. ]);
  9. $i = 0;
  10. $http->on('request', function ($request, swoole_http_response $response)use(&$i) {
  11. $route = $request->server['request_uri'];
  12. if($route == '/info'){
  13. $response->end(json_encode($request));
  14. return;
  15. }
  16. $cli = new swoole_http_client('127.0.0.1', 9501);
  17. $cli->set([
  18. 'timeout' => 0.3,
  19. 'keep_alive' => 1,
  20. ]);
  21. //post request
  22. $cli->setData(http_build_query(['a'=>123,'b'=>"哈哈"]));
  23. $cli->setHeaders(['User-Agent' => "swoole"]);
  24. $cli->on('close', function($cli)use($response){
  25. // echo "close\n";
  26. });
  27. $cli->on('error', function($cli) use ($response){
  28. $response->end("error");
  29. });
  30. $cli->execute('/info', function($cli)use( $response, &$i){
  31. $cli->setHeaders(['User-Agent' => "swoole"]);
  32. //get request
  33. $cli->execute('/info', function($cli)use($response, &$i){
  34. $ret = json_encode($cli->headers) . "\nSERVER RESPONSE: ". $cli->body;
  35. $response->end($ret);
  36. $cli->close();
  37. });
  38. });
  39. if($i++ == 1000){
  40. echo "----->Mem: ", memory_get_usage(), "b\n";
  41. $i = 0;
  42. }
  43. });
  44. $http->start();