server.php 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. <?php
  2. $serv = new swoole_server("127.0.0.1", 9501, SWOOLE_BASE);
  3. $serv->set(array(
  4. 'open_length_check' => true,
  5. 'dispatch_mode' => 1,
  6. // 'worker_num' => 4,
  7. 'package_length_type' => 'N',
  8. 'package_length_offset' => 0, //第N个字节是包长度的值
  9. 'package_body_offset' => 4, //第几个字节开始计算长度
  10. 'package_max_length' => 2000000, //协议最大长度
  11. ));
  12. function send(swoole_server $serv, $fd, $data)
  13. {
  14. $serv->send($fd, $data);
  15. echo "#send =" . strlen($data) . " bytes\n";
  16. }
  17. $serv->on('connect', function ($serv, $fd){
  18. echo "Client:Connect.\n";
  19. });
  20. $serv->on('receive', function (swoole_server $serv, $fd, $reactor_id, $data) {
  21. $req = unserialize(substr($data, 4));
  22. echo "#{$serv->worker_id}>> received length=" . strlen($data) . ", SerId: {$req['int1']}\n";
  23. send($serv, $fd, $data);
  24. send($serv, $fd, $data);
  25. send($serv, $fd, $data);
  26. });
  27. $serv->on('close', function ($serv, $fd) {
  28. echo "Client: Close.\n";
  29. });
  30. $serv->start();