安装
websocket
composer require textalk/websocket
创建自定义指令
创建一个自定义命令类文件,运行指令
php think make:command Forwarding forwarding
会生成一个app\command\Forwarding命令行指令类,我们修改内容如下:
<?php
declare (strict_types = 1);
namespace app\command;
use app\forwarding\extend\websocket\WebsocketStart;
use think\console\Command;
use think\console\Input;
use think\console\input\Argument;
use think\console\input\Option;
use think\console\Output;
use app\forwarding\extend\Config;
class Forwarding extends Command
{
protected function configure()
{
// 指令配置
$this->setName('forwarding')
->addArgument('kind', Argument::OPTIONAL, "监听转发的类型",'')
->addOption('event', null, Option::VALUE_OPTIONAL, '需要执行的事件')
->setDescription('启动监听转发系统');
}
protected function execute(Input $input, Output $output)
{
$kind = trim($input->getArgument('kind'));
$kind = $kind ?: Config::WEBSOCKET_KIND;
if($kind == Config::WEBSOCKET_KIND) {
$event = $input->hasOption('event') ? $input->getOption('event') : '';
$output->writeln("> 启动Websocket监听中");
(new WebsocketStart())->start($event);
} else {
$output->writeln("抱歉,转发参数错误");
}
}
}
配置config/console.php文件
return [
// 指令定义
'commands' => [
'forwarding' => 'app\command\Forwarding',
],
];
更多配置信息查看对应监听内容的配置
启动
参数 | 说明 | 必填 |
---|---|---|
websocket | 需要监听的类型 (目前只支持 websocket ) | 否 |
event | 需要执行的事件 | 否 |
php think forwarding websocket --event 1