gateway worker的business的onMessage分发处理咨询

leedom

问题描述

启动business后,在onMessage回调中使用call_user_func_array,提示类找不到,怀疑是composer自动加载的问题,require_once __DIR__ . '/../../vendor/autoload.php';已经在start_worker中引入,但是对这个不太懂,请各位大佬帮忙解答,感激不尽!
PS:希望可以具体点^_^
目录结构

└─YourApp
    │  Events.php
    │  start_businessworker.php
    │  
    └─deal
            deal.php

Events类

<?php

use \GatewayWorker\Lib\Gateway;

/**
 * 主逻辑
 * 主要是处理 onConnect onMessage onClose 三个方法
 * onConnect 和 onClose 如果不需要可以不用实现并删除
 */
class Events
{
   /**
    * 当客户端发来消息时触发
    * @param int $client_id 连接id
    * @param mixed $message 具体消息
    */
   public static function onMessage($client_id, $message)
   {
       var_dump($message);
       $data = json_decode($message, true);
       $class = new $data['class'];
       $method = $data['method'];
       $para = $data['params'];
       call_user_func_array(array($class, $method), $para);
        //比如消息是{"class":"deal", "method":"toDeal", "params":{"x":1, "y":2}}
        //希望可以分发到deal->toDeal
        //也尝试过{"class":"app\deal", "method":"toDeal", "params":{"x":1, "y":2}}
   }
}

composer.json

 "autoload": {
        "psr-4": {
            "" : "./",
            "app\\" : "./Applications/YourApp/"
        }
    }

为此你搜索到了哪些方案及不适用的原因

https://www.workerman.net/q/3314

404 0 0
0个回答

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