zoukankan      html  css  js  c++  java
  • thinkphp3.2整合workerman 多入口模式(windows)

    第一步:将Workerman复制到ThinkPHP项目中的适当位置(我是放到根目录,与ThinkPHP平级)

    第二步:将Workerman中的所有文件(除/Workerman/Lib/Constants.php外)后缀改为.class.php,如:Worker.php改为Worker.class.php

    第三步:配置ThinkPHP的命名空间自动加载。在ThinkPHP的配置文件中加入

    'AUTOLOAD_NAMESPACE' => array(
        'Workerman' => ROOT_PATH . 'Workerman',//根据自己的存放位置修改
    )

    第四步:在ThinkPHP项目中新增Worker模块和Worker控制器,也可以根据自己的喜好来命名

    namespace WorkerController;
    use WorkermanWorker;
    
    class Worker {
        public function Start() {
            $worker = new Worker('text://0.0.0.0:1234'); //实例化Worker,并设置协议、IP和端口
            $worker->count = 4;
            $worker->onMessage = array($this, 'onMessage');
            //worker的其它回调方法可以参考onMessage
            Worker::runAll();
        }
    
        public function onMessage($connection, $data) {
            $connection->send('something...');
        }
    }

    在onMessage方法中,还可以根据自定义的协议和内容格式,通过ThinkPHP的A()方法来调用相关的模块、控制器,就可以做到跟普通的ThinkPHP项目相同的开发模式了,如:

    $class = A($data['m'] . '/' . $data['c']);
    if (!$class) {
        $connection->send('Module or Controller not found.');
    } else {
        $action = $data['a'];
        unset($data['m'], $data['c'], $data['a']);
        try {
            call_user_func_array(array($class, $action), $data);
        } catch (Exception $ex) {
            throw $ex;
        }
    }

    第五步:ThinkPHP入口绑定。入口绑定是ThinkPHP3.2.1+给出的方法,之前的版本也有相应的方法,网上是可以查得到的。

    新建入口文件worker.php

    define('APP_PATH','./Application/');
    define('BIND_MODULE', 'Worker'); define('BIND_CONTROLLER', 'Worker'); define('BIND_ACTION', 'Start') //ThinkPHP的其他设定 require './ThinkPHP/ThinkPHP.php';

    最后:通过bat文件运行worker.php文件(Windows环境直接运行会报错)

  • 相关阅读:
    leetcode Maximum Product Subarray
    JAVA中的泛型类型不可以直接初始化
    android里getView,inflate,listview问题
    二元查找树转换成一个排序的双向链表
    c语言函数指针
    C++初始化小问题
    ODPS中的TaskContext类里面的write函数
    Eclipse里面新建servlet 是否需要配置web.xml
    检测鼠标是否在标签上
    继承
  • 原文地址:https://www.cnblogs.com/limonyun/p/8878710.html
Copyright © 2011-2022 走看看