MyGit

top-think/think-swoole

Fork: 102 Star: 462 (更新于 2024-12-06 19:15:53)

license: Apache-2.0

Language: PHP .

Swoole extend for thinkphp

最后发布版本: v4.0.12 ( 2023-11-22 21:16:23)

GitHub网址

ThinkPHP Swoole 扩展

交流群:787100169 点击加群

安装

首先按照Swoole官网说明安装swoole扩展,然后使用

composer require topthink/think-swoole

安装swoole扩展。

使用方法

直接在命令行下启动HTTP服务端。

php think swoole

启动完成后,默认会在0.0.0.0:8080启动一个HTTP Server,可以直接访问当前的应用。

swoole的相关参数可以在config/swoole.php里面配置(具体参考配置文件内容)。

如果需要使用守护进程方式运行,建议使用supervisor来管理进程

访问静态文件

4.0开始协程风格服务端默认不支持静态文件访问,建议使用nginx来支持静态文件访问,也可使用路由输出文件内容,下面是示例,可参照修改

  1. 添加静态文件路由:
Route::get('static/:path', function (string $path) {
    $filename = public_path() . $path;
    return new \think\swoole\response\File($filename);
})->pattern(['path' => '.*\.\w+$']);
  1. 访问路由 http://localhost/static/文件路径

队列支持

4.0开始协程风格服务端没有task进程了,使用think-queue代替

使用方法见 think-queue

以下配置代替think-queue里的最后一步:监听任务并执行,无需另外起进程执行队列

return [
    // ...
    'queue'      => [
        'enable'  => true,
        //键名是队列名称
        'workers' => [
            //下面参数是不设置时的默认配置
            'default'            => [
                'delay'      => 0,
                'sleep'      => 3,
                'tries'      => 0,
                'timeout'    => 60,
                'worker_num' => 1,
            ],
            //使用@符号后面可指定队列使用驱动
            'default@connection' => [
                //此处可不设置任何参数,使用上面的默认配置
            ],
        ],
    ],
    // ...
];

websocket

新增路由调度的方式,方便实现多个websocket服务

配置

swoole.websocket.route = true 时开启

路由定义

Route::get('path1','controller/action1');
Route::get('path2','controller/action2');

控制器

use \think\swoole\Websocket;
use \think\swoole\websocket\Event;
use \Swoole\WebSocket\Frame;

class Controller {

    public function action1(){//不可以在这里注入websocket对象
    
        return \think\swoole\helper\websocket()
            ->onOpen(...)
            ->onMessage(function(Websocket $websocket, Frame $frame){ //只可在事件响应这里注入websocket对象
                ...
            })
            ->onClose(...);
    }
    
    public function action2(){
    
        return \think\swoole\helper\websocket()
            ->onOpen(...)
            ->onMessage(function(Websocket $websocket, Frame $frame){
               ...
            })
            ->onClose(...);
    }
}

最近版本更新:(数据更新于 2024-10-15 17:11:37)

2023-11-22 21:16:23 v4.0.12

2023-09-16 15:43:50 v4.0.11

2023-07-01 20:21:45 v4.0.10

2023-03-20 12:10:15 v4.0.9

2022-12-18 11:45:33 v4.0.8

2022-10-31 17:36:52 v3.1.4

2022-02-03 15:11:00 v4.0.7

2021-12-07 19:31:35 v4.0.6

2021-09-06 11:58:44 v4.0.5

2021-07-22 20:37:59 v4.0.4

top-think/think-swoole同语言 PHP最近更新仓库

2024-12-13 19:38:03 coollabsio/coolify

2024-12-13 09:22:46 w7corp/easywechat

2024-12-11 20:15:22 symfony/symfony

2024-11-29 16:49:37 symfony/var-dumper

2024-11-20 23:58:25 laravel/framework

2024-11-20 18:39:23 danielmiessler/SecLists