# php-workman-server **Repository Path**: liuxiaojinla/php-workman-server ## Basic Information - **Project Name**: php-workman-server - **Description**: 基于 Workman 实现的服务器是一种高性能的 PHP 服务器解决方案,能够无缝接入 ThinkPHP、Laravel 等主流框架。 - **Primary Language**: PHP - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-29 - **Last Updated**: 2025-03-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # WorkmanServer ## 介绍 基于 Workman 实现的服务器是一种高性能的 PHP 服务器解决方案,能够无缝接入 ThinkPHP、Laravel 等主流框架。以下是关于如何使用 Workman 构建服务器并与主流框架集成的说明: ### Workman 简介 Workman 是一个轻量级的 PHP 服务器框架,专注于高性能和低资源消耗。它支持多进程、异步处理和热部署,非常适合构建高并发的应用程序。通过简单的配置,Workman 可以轻松与 ThinkPHP、Laravel 等主流框架集成,提供高效的开发和运行环境。 #### 特点 高性能:支持多进程和异步处理,能够处理大量并发请求。 热部署:无需重启服务器即可更新代码。 易于集成:与主流框架无缝对接,无需修改框架核心代码。 灵活配置:支持多种协议(HTTP、WebSocket、TCP 等)。 ## 安装教程 `composer require xin/workerman-server` ## 使用说明 **配置文件 config.php** ```php [ 'enable' => true, // 设置协议 'name' => 'HttpServer', // 设置监听的地址和端口 'bind_address' => '0.0.0.0:9501', // 设置进程数 'count' => 1,// cpu_count(), // 传输协议 'transport' => 'tcp', // 设置用户权限 'user' => '', // 设置用户组权限 'group' => '', // 服用端口 'reuse_port' => false, // 在向子进程发送停止命令stopTimeout秒后,如果进程仍在运行,则强制终止。 ':stop_timeout' => 2, // PID 文件 ':pid_file' => storage_path() . '/workerman.pid', // 状态文件 ':status_file' => storage_path() . '/workerman.status', // 进程输出文件 ':stdout_file' => storage_path('logs') . '/workerman_stdout.log', // 日志文件 ':log_file' => storage_path('logs') . '/workerman.log', // 事件循环 ':event_loop_class' => '', // 最大数据包大小 'max_package_size' => 10 * 1024 * 1024, ], // Websocket 服务 'websocket' => [ 'enable' => false, // 网关配置 'gateway' => [ // 设置Gateway进程的名称,方便status命令中查看统计 'name' => 'WebsocketGateway', // 设置监听的端口 'bind_address' => '0.0.0.0:9502', // 进程的数量 'count' => intval(cpu_count() / 2), // 内网ip,多服务器分布式部署的时候需要填写真实的内网ip 'lan_ip' => '127.0.0.1', // 监听本机端口的起始端口 'start_port' => 2300, // 心跳间隔 'ping_interval' => 10, // 服务端主动发送心跳 'ping_not_response_limit' => 0, // 心跳数据 'ping_data' => '{"type":"ping"}', // 服务注册地址 'register_address' => '127.0.0.1:1236', // 处理器 'handler' => [ // 'use' => 'App\WebSocket\Gateway', // 'constructor' => [], ], ], // 业务进程配置 'business_worker' => [ // 设置BusinessWorker进程的名称 'name' => 'WebsocketBusinessWorker', // 设置BusinessWorker进程的数量 'count' => cpu_count(), // 注册服务地址 'register_address' => '127.0.0.1:1236', // 设置使用哪个类来处理业务,业务类至少要实现onMessage静态方法,onConnect和onClose静态方法可以不用实现 'event_handler' => WebsocketListener::class, ], // 服务注册配置 'register' => [ // 设置Gateway进程的名称,方便status命令中查看统计 'name' => 'WebsocketRegister', // 设置监听的端口 'bind_address' => '0.0.0.0:1236', ], ], // 其他进程 'process' => [ [ 'handler' => [ 'use' => Xin\WorkmanServer\Handlers\HotWatcherHandler::class, 'constructor' => [ // Monitor these directories 'monitorDir' => array_merge( [ base_path('app'), base_path('config'), base_path('routes'), base_path() . '/.env', base_path('public') . '/.index.php', ], ), // Files with these suffixes will be monitored 'monitorExtensions' => [ 'php', 'html', 'htm', 'env', ], 'options' => [ 'enable_file_monitor' => !in_array('-d', $argv ?? []) && DIRECTORY_SEPARATOR === '/', 'enable_memory_monitor' => DIRECTORY_SEPARATOR === '/', ], ], ], 'reloadable' => false, ], ], ]; ```