zoukankan      html  css  js  c++  java
  • tp5.1使用think-swoole

    1.下载tp框架,版本5.1.35 ,下载think-swoole,版本2.0.17

    2.在config下书写swoole.php

    <?php
    use thinkfacadeEnv;
    
    // +----------------------------------------------------------------------
    // | Swoole设置 php think swoole命令行下有效
    // +----------------------------------------------------------------------
    return [
        // 扩展自身配置
        'host'                  => '0.0.0.0', // 监听地址
        'port'                  => 9501, // 监听端口
        'worker_num'   =>  4,
        'max_request'   =>  1000,
        'app_path'              => '/web/twzb/application/',
        'cache_size'=>1024*8,
       /* 'mode'                  => '', // 运行模式 默认为SWOOLE_PROCESS
        'sock_type'             => '', // sock type 默认为SWOOLE_SOCK_TCP
        'server_type'           => 'http', // 服务类型 支持 http websocket
        'app_path'              => '', // 应用地址 如果开启了 'daemonize'=>true 必须设置(使用绝对路径)
        'file_monitor'          => false, // 是否开启PHP文件更改监控(调试模式下自动开启)
        'file_monitor_interval' => 2, // 文件变化监控检测时间间隔(秒)
        'file_monitor_path'     => [], // 文件监控目录 默认监控application和config目录
    
        // 可以支持swoole的所有配置参数
        'pid_file'              => Env::get('runtime_path') . 'swoole.pid',
        'log_file'              => Env::get('runtime_path') . 'swoole.log',
        'document_root'         => Env::get('root_path') . 'public',
        'enable_static_handler' => true,
        'timer'                 => true,//是否开启系统定时器
        'interval'              => 500,//系统定时器 时间间隔
        'task_worker_num'       => 1,//swoole 任务工作进程数量*/
    ];

    2.在config下书写swoole_server.php

    <?php
    use thinkfacadeEnv;
    
    // +----------------------------------------------------------------------
    // | Swoole设置 php think swoole:server 命令行下有效
    // +----------------------------------------------------------------------
    return [
      
         'swoole_class' => 'apphttpSwoole', // 自定义服务类名称
    ];

    3.书写Swoole.php

    <?php
    namespace apphttp;

    use thinkswooleServer;

    class Swoole extends Server
    {
    protected $host = '0.0.0.0';
    protected $port = 9502;
    protected $serverType = 'socket';
    protected $mode = SWOOLE_PROCESS;
    protected $sockType = SWOOLE_SOCK_TCP;
    protected $option = [
    'worker_num'=> 4,
    'daemonize' => true,
    'backlog' => 128
    ];


    public function onReceive($server, $fd, $from_id, $data)
    {
    $server->send($fd, 'Swoole: '.$data);
    }

    public function onRequest($request, $response)
    {
    // $server->send('Swoole: ');
    }


    /**
    * 监听ws消息事件
    * @param $ws
    * @param $frame
    */
    public function onMessage($ws, $frame) {
    echo "ser-push-message:{$frame->data} ";
    $ws->push($frame->fd, "server-push:".date("Y-m-d H:i:s"));
    }

    }

    使用命令 

    php think swoole

    使用命令 

    php think swoole:server

  • 相关阅读:
    Java 线程间通信 —— 等待 / 通知机制
    Java 线程基础
    Java 内存模型
    Java 并发机制底层实现 —— volatile 原理、synchronize 锁优化机制、原子操作
    优秀程序员的博客有哪些?
    程序员五一被拉去相亲,结果彻底搞懂了HTTP常用状态码
    【Redis破障之路】三:Redis单线程架构
    【Redis破障之路】一:强大的Redis
    MySQL提升笔记(4)InnoDB存储结构
    MySQL提升笔记(3)日志文件详解
  • 原文地址:https://www.cnblogs.com/zhangyouwu/p/12664022.html
Copyright © 2011-2022 走看看