send_1m_svr.php 1.0 KB

123456789101112131415161718192021222324252627282930
  1. <?php
  2. $serv = new swoole_server("0.0.0.0", 9509);
  3. $serv->set(array('worker_num' => 1));
  4. $serv->on('workerStart', function($serv, $worker_id) {
  5. //if($worker_id == 0) $serv->addtimer(500);
  6. });
  7. $serv->on('connect', function ($serv, $fd, $reactor_id){
  8. $serv->array['fd'] = &strval($fd);
  9. echo "[#".posix_getpid()."]\tClient@[$fd:$reactor_id]: Connect.\n";
  10. });
  11. $serv->on('receive', function ($serv, $fd, $reactor_id, $data) {
  12. //echo "[#".posix_getpid()."]\tClient[$fd]: $data\n";
  13. $array = array('A', 'B', 'C', 'D', 'E', 'F', 'G');
  14. $data = '';
  15. $n_bytes = 0;
  16. for ($i = 0; $i < 10; $i++)
  17. {
  18. $_str = str_repeat($array[$i % 7], 4030) . "\n";
  19. //$serv->send($fd, $_str);
  20. $n_bytes += strlen($_str);
  21. $data .= $_str;
  22. }
  23. echo "send " . $n_bytes . " bytes\n";
  24. $serv->send( $serv->array['fd'], $data);
  25. $serv->close($fd);
  26. });
  27. $serv->on('close', function ($serv, $fd, $reactor_id) {
  28. echo "[#".posix_getpid()."]\tClient@[$fd:$reactor_id]: Close.\n";
  29. });
  30. $serv->start();