资讯专栏INFORMATION COLUMN

ThinkPHP 3.2 整合 Workerman 踩坑

OpenDigg / 2767人阅读

摘要:一号坑整合加载第三方有几种方式,具体参考官方手册我用的是第一种命名空间自动加载的方式,因为我下的版本是有命名空间的,所以一定要把目录放对了,把文件夹放到下,并且把里面除文件外的所有文件改为结尾。

由于需要开发长连接应用,要用到了Workerman,我是Windows的服务器,所以要把Wokerman装到windows,不得不说Windows做服务器那真是「好用」啊,一开始自己按照Workerman手册,结果发现装完后启动不了,网上找了很多安装教程都是基于linux的,win真的是少得可怜,仅有的几篇还不完整,最后大概花了一天的时候自己搞定的,分享出来,省得别人入坑。

一号坑——整合

TP3.2 加载第三方有几种方式,具体参考官方手册:http://document.thinkphp.cn/m...
我用的是第一种命名空间自动加载的方式,因为我下的Workerman版本是有命名空间的,所以一定要把目录放对了,把Wokerman文件夹放到ThinkPHP/Library/下,并且把里面除Constants.php文件外的所有文件改为.class.php结尾。

二号坑——载入

在应用目录下如HomeController下新建WorkermanController.class.php文件

namespace HomeController;
use ThinkController;
use WorkermanWorker;
class WorkerManController{
    public function index(){
        if(!IS_CLI){
            die("无法直接访问,请通过命令行启动");
        }
        $worker = new WorkermanWorker("websocket://127.0.0.1:2346");
        // 当收到客户端发来的数据后返回hello $data给客户端
        $worker->onWorkerStart = function($worker){
            echo "Worker starting...
";
        };
        $worker->onMessage = function($connection, $data)
        {
            // 向客户端发送hello $data
            $connection->send("hello ".$data);
        };
        // 运行worker
        Worker::runAll();
        
    }
}

然后可以打印一下试试能不能输出$worker,如果正常输出则说明worker类被成功加载。

三号巨坑——启动

Workerman启动只能通过命令行,也就是CMD的方式来启动,直接访问网址是不行的,这里也是困扰了我好久,在TP框架内的启动有点特殊,不能直接访问php文件,要通过TP的路由访问(有点像我们访问网址的方式),而且启动的路径要对。

首先进到网站的根目录,也就是和index.php平级的目录,建立一个bat文件,编辑内容如下:

php index.php Home/Workerman

(这里编辑的内容可能跟你的路由设置有关系,我这里是默认没改过框架路由的)
双击运行bat文件即可看到成功运行

这篇教程完全是原创的,希望能帮助到大家,感觉有用的话给个赞吧~

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/25647.html

相关文章

  • TP5整合 WorkerMan 以及 GatewayWorker

    摘要:将解压后的文件夹中的复制到的根目录,即与同级的目录。将文件中最后部分循环括号内的路径改为自己的正确路径。整合版安装使用,来安装进入根目录,即。安装成功之后删除。加载框架引导文件创建的,命名为。在,目录不存在自行创建。 TP5整合GatewayWorker Windows版安装 a)使用composer create-project topthink/think testTG,来安装th...

    Tony 评论0 收藏0
  • TP5整合 WorkerMan 以及 GatewayWorker

    摘要:将解压后的文件夹中的复制到的根目录,即与同级的目录。将文件中最后部分循环括号内的路径改为自己的正确路径。整合版安装使用,来安装进入根目录,即。安装成功之后删除。加载框架引导文件创建的,命名为。在,目录不存在自行创建。 TP5整合GatewayWorker Windows版安装 a)使用composer create-project topthink/think testTG,来安装th...

    Fundebug 评论0 收藏0
  • thinkphp 5.0整合phpsocketio完整攻略,绕坑

    摘要:使用环境项目需求前端下单,后台接受,并立即做出提示。例如美团外卖,客户端下单成功后,商家端就会立即有接单语音提示。为了能理解,我用目录展示应用目录新创建目录启动文件入口文件只是绑定到了这个控制器,所以这个是整个的核心。 使用环境: thinkphp5.0 项目需求 前端下单,后台接受,并立即做出提示。例如:美团外卖,客户端下单成功后,商家端就会立即有接单语音提示。 开发环境 thi...

    王笑朝 评论0 收藏0
  • Notadd 2.0 全新 Node.js 版本~ (开发中) [从 PHP 到 node 的踩坑

    摘要:有着最全的协议支持,同时有各种非阻塞拓展,可以说是最符合要求的,但是异步需要对做很大的改动。的计划将基于开发,同时也提供一些无法提供的功能和特性。 一点小遗憾 对于 Notadd 我们本来期望它实现更多... 尽管我们也尝试做了很多努力,但是由于 PHP 本身的局限,以及考虑到开发环境配置的复杂程度,最终使用了折中方案。接下来,我们谈谈整个技术选型历程,也供今后相关开发者做借鉴和参考:...

    Tonny 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<