httpmulti.php 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. <?php
  2. /**
  3. * @Author: syyuanyizhi@163.com
  4. connect refuse: errorCode 111
  5. I/O timeout:errorCode 110
  6. http 9510
  7. tcp 9511
  8. */
  9. class Server
  10. {
  11. public $server;
  12. public function run()
  13. {
  14. $this->server = new Swoole\Http\Server("0.0.0.0", 9508);
  15. $this->server->set([
  16. 'worker_num' => 1,
  17. 'daemonize' => true,
  18. 'log_file' => '/data/markyuan/swoole.log',
  19. ]);
  20. $this->server->on('Request', ['Server', 'onRequest']);
  21. $this->server->start();
  22. }
  23. private static function https(){
  24. //--enable-openssl
  25. for($i=0;$i<2;$i++){
  26. $cli = new Swoole\Coroutine\Http\Client('0.0.0.0',443,TRUE );
  27. $cli->set([ 'timeout' => 1]);
  28. $cli->setHeaders([
  29. 'Host' => "api.mp.qq.com",
  30. "User-Agent" => 'Chrome/49.0.2587.3',
  31. 'Accept' => 'text/html,application/xhtml+xml,application/xml',
  32. 'Accept-Encoding' => 'gzip',
  33. ]);
  34. $ret = ($cli->get('/cgi-bin/token?appid=3333&secret=222'.$i.$i.$i.$i.$i));
  35. error_log(__LINE__.var_export($cli,true).PHP_EOL,3,'/tmp/markyuan');
  36. $cli->close();
  37. }
  38. }
  39. private static function http(){
  40. error_log(__LINE__.'---------- begin --- http --------------'.PHP_EOL,3,'/tmp/markyuan');
  41. for($i=0;$i<2;$i++){
  42. $cli = new Swoole\Coroutine\Http\Client('0.0.0.0', 9510);
  43. $cli->set([ 'timeout' => 1]);
  44. $cli->setHeaders([
  45. 'Host' => "api.mp.qq.com",
  46. "User-Agent" => 'Chrome/49.0.2587.3',
  47. 'Accept' => 'text/html,application/xhtml+xml,application/xml',
  48. 'Accept-Encoding' => 'gzip',
  49. ]);
  50. error_log(__LINE__.var_export($cli,true).PHP_EOL,3,'/tmp/markyuan');
  51. $ret = ($cli->get('/cn/token?appid=1FxxxxS9V'.$i.$i.$i.$i.$i));
  52. error_log(__LINE__.var_export($ret,true).PHP_EOL,3,'/tmp/markyuan');
  53. error_log(__LINE__.var_export($cli,true).PHP_EOL,3,'/tmp/markyuan');
  54. $cli->close();
  55. }
  56. error_log(__LINE__.'---------- end --- http --------------'.PHP_EOL,3,'/tmp/markyuan');
  57. }
  58. private static function multihttp(){
  59. error_log(__LINE__.'---------- begin --- multi --------------'.PHP_EOL,3,'/tmp/markyuan');
  60. $cliAA= new Swoole\Coroutine\Http\Client('0.0.0.0', 9510);
  61. $cliAA->set(['timeout' => 1]);
  62. $cliAA->setHeaders([
  63. 'Host' => "api.mp.qq.com",
  64. "User-Agent" => 'Chrome/49.0.2587.3',
  65. ]);
  66. $cliBB= new Swoole\Coroutine\Http\Client('0.0.0.0', 9510);
  67. $cliBB->set([ 'timeout' => 1]);//
  68. $cliBB->setHeaders([
  69. 'Host' => "api.mp.qq.com",
  70. "User-Agent" => 'Chrome/49.0.2587.3',
  71. ]);
  72. error_log(__LINE__.var_export($cliAA,true).PHP_EOL,3,'/tmp/markyuan');
  73. error_log(__LINE__.var_export($cliBB,true).PHP_EOL,3,'/tmp/markyuan');
  74. $retAA=$cliAA->setDefer(1);
  75. $retBB=$cliBB->setDefer(1);
  76. error_log(__LINE__.var_export($retAA,true).PHP_EOL,3,'/tmp/markyuan');
  77. error_log(__LINE__.var_export($retBB,true).PHP_EOL,3,'/tmp/markyuan');
  78. error_log(__LINE__.var_export($cliAA,true).PHP_EOL,3,'/tmp/markyuan');
  79. error_log(__LINE__.var_export($cliBB,true).PHP_EOL,3,'/tmp/markyuan');
  80. $retAA = ($cliAA->get('/cn/token?appid=AAA'));
  81. $retBB = ($cliBB->get('/cn/token?appid=BBB'));
  82. error_log(__LINE__.var_export($retAA,true).PHP_EOL,3,'/tmp/markyuan');
  83. error_log(__LINE__.var_export($retBB,true).PHP_EOL,3,'/tmp/markyuan');
  84. error_log(__LINE__.var_export($cliAA,true).PHP_EOL,3,'/tmp/markyuan');
  85. error_log(__LINE__.var_export($cliBB,true).PHP_EOL,3,'/tmp/markyuan');
  86. $retAA=$cliAA->recv();
  87. $retBB=$cliBB->recv();
  88. error_log(__LINE__.var_export($retAA,true).PHP_EOL,3,'/tmp/markyuan');
  89. error_log(__LINE__.var_export($retBB,true).PHP_EOL,3,'/tmp/markyuan');
  90. error_log(__LINE__.var_export($cliAA,true).PHP_EOL,3,'/tmp/markyuan');
  91. error_log(__LINE__.var_export($cliBB,true).PHP_EOL,3,'/tmp/markyuan');
  92. $retAA=$cliAA->close();
  93. $retBB=$cliBB->close();
  94. error_log(__LINE__.'---------- end --- multi --------------'.PHP_EOL,3,'/tmp/markyuan');
  95. }
  96. private static function tcp(){
  97. for($i=0;$i<2;$i++){
  98. $tcp_cli = new Swoole\Coroutine\Client(SWOOLE_SOCK_TCP);
  99. $ret = $tcp_cli ->connect("0.0.0.0", 9511);
  100. $ret = $tcp_cli ->send('test for the coro');
  101. $ret = $tcp_cli ->recv();
  102. $ret=$tcp_cli->close();
  103. }
  104. }
  105. private static function coro_dns(){
  106. swoole_async_set(array('use_async_resolver'=>1));
  107. swoole_async_set(array('dns_cache_refresh_time'=>0));
  108. $ret=swoole_async_dns_lookup_coro("www.baidu.com",0.5);
  109. error_log(' ip and host '.$host.print_r($ret,true),'3','/home/yuanyizhi/markyuan/markyuan.log');
  110. return $ret;
  111. // swoole_async_dns_lookup("www.baidu.com", function($host, $ip){
  112. // error_log(' ip and host '.$host.' and ip '.$ip,'3','/home/yuanyizhi/markyuan/markyuan.log');
  113. // });
  114. }
  115. private static function tcpmulti(){
  116. $cliAA = new Swoole\Coroutine\Client(SWOOLE_SOCK_TCP);
  117. $cliBB = new Swoole\Coroutine\Client(SWOOLE_SOCK_TCP);
  118. $retAA = $cliAA ->connect("0.0.0.0", 9511);
  119. $retBB = $cliBB ->connect("0.0.0.0", 9511);
  120. $retAA = $cliAA ->send('test for the coro');
  121. $retBB = $cliBB ->send('test for the coro');
  122. $retAA = $cliAA->recv();
  123. $retBB = $cliBB->recv();
  124. $cliAA->close();
  125. $cliBB->close();
  126. }
  127. public static function onRequest($request, $response)
  128. {
  129. // self::multihttp();
  130. // self::http();
  131. //self::https();
  132. // self::tcp();
  133. // self::tcpmulti();
  134. $ret=self::coro_dns();
  135. $response->end(print_r($ret,true));
  136. }
  137. public static function staticFunc()
  138. {
  139. echo "in static function";
  140. }
  141. }
  142. $server = new Server();
  143. $server->run();