think-swoole 3.0入門教程(thinkphp 6.0)

前言

ThinkPHP即將迎來最新版本6.0,針對目前愈來愈流行Swoole,thinkphp也推出了最新的擴展think-swoole 3.0

安裝

因爲目前thinkphp 6.0沒有穩定版本,因此只能安裝開發板php

composer create-project topthink/think tp 6.0.*-dev

接下來安裝think-swoole 3.0,目前最新的穩定版本是3.0.2react

composer require topthink/think-swoole

配置

安裝結束能夠根據本身的需求對配置信息進行修改。TP6的配置信息都存在於外部的config目錄,這裏主要介紹swoole相關配置信息web

use think\swoole\websocket\room\TableRoom;
use think\swoole\websocket\socketio\Handler;
use think\swoole\websocket\socketio\Parser;

return [
    'server'           => [
        'host'      => '0.0.0.0', // 監聽地址
        'port'      => 80, // 監聽端口
        'mode'      => SWOOLE_PROCESS, // 運行模式 默認爲SWOOLE_PROCESS
        'sock_type' => SWOOLE_SOCK_TCP, // sock type 默認爲SWOOLE_SOCK_TCP
        'options'   => [
            'pid_file'              => runtime_path() . 'swoole.pid',//主進程ID保存文件路徑
            'log_file'              => runtime_path() . 'swoole.log',//swoole日誌文件
            'daemonize'             => false,
            // Normally this value should be 1~4 times larger according to your cpu cores.
            'reactor_num'           => swoole_cpu_num(),//線程數,默認值便可,不設置也能夠
            'worker_num'            => swoole_cpu_num(),//worker進程數量
            'task_worker_num'       => swoole_cpu_num(),//異步任務進程數量
            'enable_static_handler' => true,//是否啓用靜態服務,若是開啓,則優先判斷指定的web目錄下是否存在請求的靜態文件,若是存在,則直接返回
            'document_root'         => root_path('public'),//web目錄
            'package_max_length'    => 20 * 1024 * 1024,
            'buffer_output_size'    => 10 * 1024 * 1024,
            'socket_buffer_size'    => 128 * 1024 * 1024,
            'max_request'           => 3000,
            'send_yield'            => true,
        ],
    ],
    'websocket'        => [
        'enabled'       => false,//是否開啓
        'handler'       => Handler::class,//處理請求的類,能夠自定義
        'parser'        => Parser::class,//處理解析的類,能夠自定義
        'route_file'    => base_path() . 'websocket.php',//websocket路由文件
        'ping_interval' => 25000,
        'ping_timeout'  => 60000,
        'room'          => [
            'type'        => TableRoom::class,
            'room_rows'   => 4096,
            'room_size'   => 2048,
            'client_rows' => 8192,
            'client_size' => 2048,
        ],
    ],
    'auto_reload'      => false,
    'enable_coroutine' => true,
    'resetters'        => [],
    'tables'           => [],
];

啓動

php think swoole

執行上述命令則能夠啓動web服務thinkphp

若是須要使用守護進程方式運行,能夠配置websocket

'options'   =>  [
    'daemonize' =>  true
]

支持的命令swoole

php think swoole [start|stop|reload|restart]
相關文章
相關標籤/搜索