启动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/"
}
}