swoole.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. <?php
  2. use app\webscoket\Manager;
  3. use Swoole\Table;
  4. return [
  5. 'http' => [
  6. 'enable' => true,
  7. 'host' => '0.0.0.0',
  8. 'port' => 8365,
  9. 'worker_num' => swoole_cpu_num(),
  10. 'options' => [
  11. 'pid_file' => runtime_path() . 'swoole.pid',
  12. 'log_file' => runtime_path() . 'swoole.log',
  13. 'daemonize' => false,
  14. 'reactor_num' => swoole_cpu_num(),
  15. 'task_worker_num' => swoole_cpu_num(),
  16. 'task_enable_coroutine' => false,
  17. 'task_max_request' => 2000,
  18. 'enable_static_handler' => true,
  19. 'document_root' => root_path('public'),
  20. 'package_max_length' => 20 * 1024 * 1024,
  21. 'buffer_output_size' => 10 * 1024 * 1024,
  22. 'socket_buffer_size' => 128 * 1024 * 1024,
  23. 'max_request' => 3000,
  24. 'send_yield' => true,
  25. 'reload_async' => true,
  26. ],
  27. ],
  28. 'websocket' => [
  29. 'enable' => false,
  30. 'handler' => Manager::class,
  31. 'ping_interval' => 25000,
  32. 'ping_timeout' => 60000,
  33. 'room' => [
  34. 'type' => 'table',
  35. 'table' => [
  36. 'room_rows' => 8192,
  37. 'room_size' => 2048,
  38. 'client_rows' => 4096,
  39. 'client_size' => 2048,
  40. ],
  41. 'redis' => [
  42. 'host' => '127.0.0.1',
  43. 'port' => 6379,
  44. 'max_active' => 3,
  45. 'max_wait_time' => 5,
  46. ],
  47. ],
  48. 'listen' => [],
  49. 'subscribe' => [],
  50. ],
  51. 'rpc' => [
  52. 'server' => [
  53. 'enable' => false,
  54. 'host' => '0.0.0.0',
  55. 'port' => 9000,
  56. 'worker_num' => swoole_cpu_num(),
  57. 'services' => [],
  58. ],
  59. 'client' => [],
  60. ],
  61. //队列
  62. 'queue' => [
  63. 'enable' => false,
  64. 'workers' => [],
  65. ],
  66. 'hot_update' => [
  67. 'enable' => env('APP_DEBUG', false),
  68. 'name' => ['*.php'],
  69. 'include' => [app_path(),root_path().'ln'],
  70. 'exclude' => [],
  71. ],
  72. //连接池
  73. 'pool' => [
  74. 'db' => [
  75. 'enable' => true,
  76. 'max_active' => 3,
  77. 'max_wait_time' => 5,
  78. ],
  79. 'cache' => [
  80. 'enable' => true,
  81. 'max_active' => 3,
  82. 'max_wait_time' => 5,
  83. ],
  84. //自定义连接池
  85. ],
  86. 'tables' => [
  87. 'user' => [
  88. 'size' => 2048,
  89. 'columns' => [
  90. ['name' => 'fd', 'type' => Table::TYPE_INT],
  91. ['name' => 'type', 'type' => Table::TYPE_INT],
  92. ['name' => 'uid', 'type' => Table::TYPE_INT]
  93. ]
  94. ]
  95. ],
  96. //每个worker里需要预加载以共用的实例
  97. 'concretes' => [],
  98. //重置器
  99. 'resetters' => [],
  100. //每次请求前需要清空的实例
  101. 'instances' => [],
  102. //每次请求前需要重新执行的服务
  103. 'services' => [],
  104. ];