关于thinkphp6:thinkphp6x中如何集成gatewaywork
阐明针对目前我的项目中须要实时通信的场景,咱们调研了一些第三方的库,目前比拟成熟稳固的为基于workman的gatewaywork比拟适宜。本文次要针对如何集成gatewaywork进行阐明。 装置首先通过 composer 装置 composer require topthink/think-worker Nginx配置location / { if (!-e $request_filename){ rewrite ^(.*)$ /index.php?s=$1 last; break; }}# websocketslocation =/websocket{ proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-Nginx-Proxy true; proxy_pass https://localhost:21123; proxy_connect_timeout 86400s; proxy_read_timeout 86400s; proxy_send_timeout 86400s; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade";}SSL配置gateway_worker.php <?phpreturn[ 'protocol' => 'websocket', // 协定 反对 tcp udp unix http websocket text 'host' => '0.0.0.0', // 监听地址 'port' => 21123, // 监听端口 'socket' => '', // 残缺监听地址 'ssl' => true, 'transport' =>'ssl', 'context' => [ 'ssl' => [ 'local_cert' => 'fullchain.pem', //证书文件的寄存门路(请改成本人的门路) 'local_pk' => 'privkey.pem', //证书私钥的寄存门路(请改成本人的门路) 'verify_peer' => false, ] ], // socket 上下文选项 'register_deploy' => true, // 是否须要部署register 'businessWorker_deploy' => true, // 是否须要部署businessWorker 'gateway_deploy' => true, // 是否须要部署gateway // Register配置 'registerAddress' => '127.0.0.1:21124', // Gateway配置 'name' => 'runnerPaotui', 'count' => 4, 'lanIp' => '127.0.0.1', 'startPort' => 21125, 'daemonize' => true, 'pingInterval' => 30,//心跳检测,默认30秒,监测不到断开链接 'pingNotResponseLimit' => 1,//0服务端被动发送心跳(不举荐,默认) 1客户端定时发送心跳(举荐,设为1后客户端需做被动定时向服务端发包解决) 'pingData' => '{"type":"ping"}',//服务端定时向客户端发送的数据 // BusinsessWorker配置 'businessWorker' => [ 'name' => 'BusinessWorker', 'count' => 1,// 'eventHandler' => '\think\worker\Events', 'eventHandler' => '\api\wxapp\controller\Events', ],];worker.php ...