thinkphp使用 think-swoole task

是参考这位大佬的,大家可以去看看https://www.kancloud.cn/book_xwy/think-swoole3/1720752
安装thinkphp6

composer create-project topthink/think tpwebsocket

通过composer给项目安装think-swoole扩展

composer require topthink/think-swoole

使用nginx做代理服务配置如下

server{
	listen 80 ;
	server_name 域名;

	#代理配置
	location /{
		proxy_set_header X-Original-Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_pass http://127.0.0.1:9501/;
	}
}

1.:9501是config/swoole.php中的server[‘port’]
2.配置完成后重启nginx即可
3.在项目根目录下执行php think swoole start
4.访问域名即可看到响应结果.

常用命令:
php think swoole start
php think swoole restart
php think swoole stop
输出:
在这里插入图片描述
创建两个监听事件

php think make:listener SwooleTask
php think make:listener SwooleTaskFinish

在event.php加入如下代码:

// 事件定义文件
return [
    'bind'      => [
    ],

    'listen'    => [
        'AppInit'  => [],
        'HttpRun'  => [],
        'HttpEnd'  => [],
        'LogLevel' => [],
        'LogWrite' => [],
        'swoole.task'=>['\app\listener\SwooleTask'],
        'swoole.finish'=>['\app\listener\SwooleTaskFinish'],
    ],

    'subscribe' => [
    ],
];

SwooleTask.php

<?php
declare (strict_types=1);

namespace app\listener;

use Swoole\Server\Task;

class SwooleTask
{
    /**
     * 事件监听处理
     *
     * @return mixed
     */
    public function handle(Task $task)
    {
        var_dump('on task');
        var_dump($task->data);//task的data数据即server->task()传入的数据
        $task->finish($task->data);//这里必须手动执行finish,否则不会触发onFinish监听事件
        return ;
    }
}

SwooleTaskFinish.php

<?php

namespace app\controller;

use app\BaseController;
use Swoole\Server;

class Index extends BaseController
{
    public function index(Server $server)
    {
        $server->task(['test'=>'test value']);
        return ;
    }
}

跑起来的样子
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值