你好 我使用tp5.0 按照workman的教程 在onWorkerStart使用new Worker例子 会报错

369546305yh
3561 1 0
1个回答

q13113671764

你这错误信息粘贴完整了吗?我记得5.0好像没啥问题的,按教程都是一次过的呀,对了,你这是linux系统吗?不是的话不需要后面的 start 启动 的

  • 369546305yh 2019-02-15

    TP5的demo代码是可以 不过 我需要加一个text协议和nginx通讯 加了就不行了 就是加了后面那一块

  • q13113671764 2019-02-15

    @5432:你把完整报错信息贴出来呀,因为监听端口报错正常来看不可能造成无法运行的,我估计是这两个问题,1 你代码写的有问题出错的 ,2 你下载的workerman 可能是有问题的,这个基本上应该是你代码问题的,tp5.0跟tp5.1我都做了好几个项目有用到过workerman 的,都,没出现过你这种问题

  • q13113671764 2019-02-15

    @5432:

    这是命名空间调用的
    use Workerman as workerman;

    /**
     * @param $port
     * @param $func
     * @throws \Exception
     * 监听端口
     */
    protected function portListen($port,$func){
    
        $inner_text_worker = new workerman\Worker("Text://0.0.0.0:{$port}");
        $inner_text_worker->onMessage = $func;
        $inner_text_worker->listen();
    }
    
        然后需要监听端口就这样写
        $this->portList('5678',function ($connection, $res){    
                  echo 'success';
        });
        这样试试,你把你其它多余代码屏蔽掉,要是报错再找我
  • 369546305yh 2019-02-15

    @5433:找到问题了。。。 thinkphp5.0里面的demo用的类名worker和workman本身的类名重复了。。改了个名字就好了

年代过于久远,无法发表回答
🔝