/**
* 消息事件回调
* @var string
*/
protected static $eventClassName = \app\push\controller\Push::class;
/**
* 当客户端发来消息时触发
* @param int $client_id 连接id
* @param mixed $message 具体消息
*/
public static function onMessage($client_id, $message)
{
$message_data = json_decode($message, true);
if (!$message_data) return;
try {
if (!isset($message_data['type'])) throw new \Exception('缺少消息参数类型');
//消息回調处理
$evevtName = self::$eventClassName . '::instance';
if (is_callable($evevtName))
$evevtName()->start($message_data['type'], $client_id, $message_data);
else
throw new \Exception('消息处理回调不存在。[' + $evevtName + ']');
} catch (\Exception $e) {
var_dump([
'file' => $e->getFile(),
'code' => $e->getCode(),
'msg' => $e->getMessage(),
'line' => $e->getLine()
]);
}
}
最后解决方案 但是不知道原因
/**
* 当客户端发来消息时触发
* @param int $client_id 连接id
* @param mixed $message 具体消息
*/
public static function onMessage($client_id, $message)
{
$message_data = json_decode($message, true);
if (!$message_data) return;
try {
if (!isset($message_data['type'])) throw new \Exception('缺少消息参数类型');
//消息回調处理
Push::instance()->start($message_data['type'], $client_id, $message_data);
} catch (\Exception $e) {
var_dump([
'file' => $e->getFile(),
'code' => $e->getCode(),
'msg' => $e->getMessage(),
'line' => $e->getLine()
]);
}
}