thinkphp3.2和Workerman 源码整合

6 篇文章 0 订阅

workerman 代码调整

        下载workerman, 放入thinkphp,注意与Home平级,就把workerman当做是一个模块。

 修改worker类中的parseCommand()方法

​
         global $argv;
        // Check argv;
        $start_file = $argv[0];
        $available_commands = array(
            'start',
            'stop',
            'restart',
            'reload',
            'status',
            'connections',
        );
        $usage = "Usage: php yourfile.php {" . implode('|', $available_commands) . "} [-d]\n";
        if (!isset($argv[1]) || !in_array($argv[1], $available_commands)) {
            exit($usage);
        }


        // Get command.
        $command  = trim($argv[1]);
        $command2 = isset($argv[2]) ? $argv[2] : '';

       将上面的代码替换成如下:

       global $argv;
        // Check argv;
        $start_file = $argv[0];
        if (!isset($argv[2])) {
        exit("Usage: php yourfile.php Controller/Action {start|stop|restart|reload|status|kill}\n");
        }


        // Get command.
        $command = trim($argv[2]);
        $command2 = isset($argv[3]) ? $argv[3] : '';


​

thinkphp代码调整

        正常建立Workerman控制器并在文件开始多引入一个命名空间,功能是用于引入Workerman类代码如下:

use Workerman\Worker;

        通过文件引用将workerman加载到方法里面并编写workerman代码如下:

 require_once '/home/wwwroot/default/Application/Workerman/Autoloader.php';

       应用代码如下:

        $worker = new Worker('http://0.0.0.0:2345');
        
        $worker->onMessage = function($connection, $data){
            static $request_count = 0;// 已经处理请求数
            var_dump($data);
            $connection->send("hello");
            
            /*
            * 退出当前进程,主进程会立刻重新启动一个全新进程补充上来,从而完成进程重启
            */
            if(++$request_count >= MAX_REQUEST){// 如果请求数达到1000
                Worker::stopAll();
            }
        };
        
        Worker::runAll();

linux 运行thinkphp 方法中的workerman代码

         linux命令运行的代码如下:        

php index.php Home/Workerman/index start

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值