swoole_server.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. define('CRAZY_SWOOLE', 1);
  3. include_once(__DIR__.'/api/gateway.php');
  4. include_once(__DIR__.'/api/login.php');
  5. $http = new Swoole\Http\Server('0.0.0.0', 9501);
  6. $http->set([
  7. 'daemonize' => true,
  8. 'worker_num' => 8,
  9. //'reactor_num' => 8,
  10. 'open_tcp_keepalive' => true, //单位秒,连接在 n 秒内没有数据请求,将开始对此连接进行探测。
  11. 'tcp_keepidle' => 3, //3s探测一次
  12. 'tcp_keepcount' => 5, //探测的次数,超过5次后还没回包close此连接
  13. 'log_level' => SWOOLE_LOG_TRACE,
  14. 'log_date_format' => '%Y-%m-%d %H:%M:%S',
  15. ]);
  16. $http->on('request', function ($request, $response) {
  17. if ($request->server['path_info'] == '/favicon.ico' || $request->server['request_uri'] == '/favicon.ico') {
  18. $response->end();
  19. return;
  20. }
  21. $response->header("Content-Type", "text/html; charset=utf-8");
  22. $ret = '[]';
  23. $requestUri = ltrim($request->server['request_uri'], '/');
  24. if(!in_array($requestUri, ['api/gateway.php', 'api/login.php'])){
  25. $response->end($ret);
  26. return;
  27. }
  28. if($requestUri == 'api/login.php'){
  29. $response->header("Access-Control-Allow-Origin:*");
  30. $response->header("Access-Control-Allow-Method:*");
  31. $response->header("Access-Control-Allow-Headers:Content-Type");
  32. $ret = (new Login($request->post, $request->get))->start();
  33. }else{
  34. if(IS_DEBUF){
  35. $response->header("Access-Control-Allow-Origin:*");//允许跨域
  36. }else{
  37. $response->header("Access-Control-Allow-Origin:*");//允许跨域
  38. }
  39. $ret = (new gateway($request->post, $request->get))->start();
  40. }
  41. $response->end($ret);
  42. });
  43. $http->start();