swoole_http.php 文件详解
键 | 描述 |
---|---|
server.host | 服务器监听主机地址 |
server.port | 服务器监听端口 |
public_path | 项目的公用文件夹路径 |
handle_static_files | 确定是否使用Swoole响应对静态文件的请求。(您应该使用Nginx来处理静态文件。) |
access_log | 确定是否在控制台上输出访问日志。 |
socket_type | SWOOLE_SOCK_TCP作为默认值,其他类型:SWOOLE_SOCK_UDP,SWOOLE_SOCK_TCP6,SWOOLE_SOCK_UDP6,SWOOLE_UNIX_STREAM,SWOOLE_UNIX_DGRAM |
server.options | Server。要获取有关Swoole服务器的更多信息,请阅读官方文档 |
websocket.enabled | 确定是否启用Websocket服务器 |
hot_reload.enabled | 确定是否启用热重装进行开发。 |
hot_reload.recursively | 确定是否以递归方式扫描目录。 |
hot_reload.directory | 热装的基本路径。 |
hot_reload.log | 确定是否在控制台上输出重新加载状态。 |
hot_reload.filter | 用于热重装的过滤器。默认值为.php。 |
ob_output | 如果启用,控制台输出将传输到响应内容。 |
pre_resolved | 创建沙箱后,此处的预解析实例将得到解析。 |
instances | 每个请求都会清除此处的实例。 |
providers | 服务提供商将在每次请求时重新注册。 |
tables | 您可以在此处定义用于数据共享的Swoole表。 |
示例:
<?php
use Swoole\Table;
return [
/*
|--------------------------------------------------------------------------
| HTTP server configurations.
|--------------------------------------------------------------------------
|
| @see https://www.swoole.co.uk/docs/modules/swoole-server/configuration
|
*/
'server' => [
'host' => env('SWOOLE_HTTP_HOST', '127.0.0.1'),
'port' => env('SWOOLE_HTTP_PORT', '1215'),
'public_path' => base_path('public'),
// Determine if to use swoole to respond request for static files
'handle_static_files' => env('SWOOLE_HANDLE_STATIC', true),
// You must add --enable-openssl while compiling Swoole
// Put `SWOOLE_SOCK_TCP | SWOOLE_SSL` if you want to enable SSL
'socket_type' => SWOOLE_SOCK_TCP,
'options' => [
'pid_file' => env('SWOOLE_HTTP_PID_FILE', base_path('storage/logs/swoole_http.pid')),
'log_file' => env('SWOOLE_HTTP_LOG_FILE', base_path('storage/logs/swoole_http.log')),
'daemonize' => env('SWOOLE_HTTP_DAEMONIZE', false),
// 启用的内核,这个是根据你的CPU内核来的,默认就好
'reactor_num' => env('SWOOLE_HTTP_REACTOR_NUM', swoole_cpu_num()),
'worker_num' => env('SWOOLE_HTTP_WORKER_NUM', swoole_cpu_num()),
'task_worker_num' => env('SWOOLE_HTTP_TASK_WORKER_NUM', swoole_cpu_num()),
// 要接收的数据不能大于缓冲区输出大小。
'package_max_length' => 20 * 1024 * 1024,
// 要发送的数据不能大于缓冲区输出大小。
'buffer_output_size' => 10 * 1024 * 1024,
// 套接字连接的最大缓冲区大小
'socket_buffer_size' => 128 * 1024 * 1024,
// 工作进程将在处理此数量的请求后重新启动
'max_request' => 3000,
// 启用协同发送
'send_yield' => true,
// 编译Swoole时必须添加--enable openssl
'ssl_cert_file' => null,
'ssl_key_file' => null,
],
],
/*
|--------------------------------------------------------------------------
| 是否启用Websocket服务器
|--------------------------------------------------------------------------
*/
'websocket' => [
'enabled' => env('SWOOLE_HTTP_WEBSOCKET', false),
],
/*
|--------------------------------------------------------------------------
| 如果启用,控制台输出将传输到响应内容。
|--------------------------------------------------------------------------
*/
'ob_output' => env('SWOOLE_OB_OUTPUT', true),
/*
|--------------------------------------------------------------------------
| 创建沙盒时,将解析此处的预解析实例。
|--------------------------------------------------------------------------
*/
'pre_resolved' => [
'view', 'files', 'session', 'session.store', 'routes',
'db', 'db.factory', 'cache', 'cache.store', 'config', 'cookie',
'encrypter', 'hash', 'router', 'translator', 'url', 'log',
],
/*
|--------------------------------------------------------------------------
| 这里的实例将在每次请求时被清除。
|--------------------------------------------------------------------------
*/
'instances' => [
//
],
/*
|--------------------------------------------------------------------------
| 这里的提供者将根据每个请求进行注册。
|--------------------------------------------------------------------------
*/
'providers' => [
Illuminate\Pagination\PaginationServiceProvider::class,
],
/*
|--------------------------------------------------------------------------
| 沙盒应用程序的重置程序。
|--------------------------------------------------------------------------
*/
'resetters' => [
SwooleTW\Http\Server\Resetters\ResetConfig::class,
SwooleTW\Http\Server\Resetters\ResetSession::class,
SwooleTW\Http\Server\Resetters\ResetCookie::class,
SwooleTW\Http\Server\Resetters\ClearInstances::class,
SwooleTW\Http\Server\Resetters\BindRequest::class,
SwooleTW\Http\Server\Resetters\RebindKernelContainer::class,
SwooleTW\Http\Server\Resetters\RebindRouterContainer::class,
SwooleTW\Http\Server\Resetters\RebindViewContainer::class,
SwooleTW\Http\Server\Resetters\ResetProviders::class,
],
/*
|--------------------------------------------------------------------------
| 在这里定义你的swoole表。
|
| @see https://www.swoole.co.uk/docs/modules/swoole-table
|--------------------------------------------------------------------------
*/
'tables' => [
// 'table_name' => [
// 'size' => 1024,
// 'columns' => [
// ['name' => 'column_name', 'type' => Table::TYPE_STRING, 'size' => 1024],
// ]
// ],
]
];