ThinkPHP6.0的Workerman
1.安装Workerman
composer require topthink/think-worker =3.02.宝塔的网站 -> 配置文件->添加以下代(添加下列代码到上面图片中 端口这里开放的是:2345(具体看业务需求)
location /wss
{
proxy_pass http://127.0.0.1:2345;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header X-Real-IP $remote_addr;
}3.在项目跟目录/config/gateway_worker.php文件里面修改(没有自行创建)
return [
// 扩展自身需要的配置
'protocol' => 'websocket', // 协议 支持 tcp udp unix http websocket text
'host' => '0.0.0.0', // 监听地址
'port' => 2349, // 监听端口
'socket' => '', // 完整监听地址
'context' => [], // socket 上下文选项
'register_deploy' => true, // 是否需要部署register
'businessWorker_deploy' => true, // 是否需要部署businessWorker
'gateway_deploy' => true, // 是否需要部署gateway
// Register配置
'registerAddress' => '127.0.0.1:1237',
// Gateway配置
'name' => '英雄大逃杀',// 执行后挂载昵称
'count' => 1,
'lanIp' => '127.0.0.1',
'startPort' => 2001,
'daemonize' => false,
'pingInterval' => 5, // 心跳频率
'pingNotResponseLimit' => 0,
'pingData' => '{"type":"心跳"}',
// BusinsessWorker配置
'businessWorker' => [
'name' => '英雄大逃杀',
'count' => 1,
// 'eventHandler' => '\think\worker\Events', 查看对应 项目根目录/vendor/topthink/think-worker/src/Events.php
'eventHandler' => '\app\worker\Events', // 执行文件 默认不是这个地址
],
];4.对应的命令
php think worker:gateway stop 停止
php think worker:gateway 测试环境
php think worker:gateway -d 后台运行使用小技巧
1.倒计时推送
use Workerman\Lib\Timer;
use think\worker\Application;
public static function onWorkerStart(Worker $businessWorker)
{
$app = new Application;
$app->initialize();
Timer::add(5, function(){
// 逻辑
});
}2.服务器推送
use GatewayWorker\Lib\Gateway;
Gateway::$registerAddress = '127.0.0.1:1237';
// 推送给指定用户 A
Gateway::sendToUid(A,json_encode(array('data' => $box,'type' => 'fangjianbox')));
// 推送给全部人
Gateway::sendToAll('测试');
// 登录绑定
Gateway::bindUid($client_id,'token');bug处理
1.检查vendor/topthink/think-worker/src/Application.php文件方法 runningInConsole() 是否为 ningInConsole(): bool
runningInConsole(): bool
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果