<?php
/**
* @name Api
* date:2022-04-15
* author:yanyl
* ajax 请求 统一处理入口
*/
class Api
{
private $api;
public function __construct()
{
}
/**
* 发送 ajax 请求数据
* @param string $products 产品模块 系统| 离线| 矩阵| 编码器| 多画面| 字幕| 导播
* @param array $data 数据
* @param false $sync 是否异步发送信息
*/
public function sendMessage(string $products = '',array $data,bool $sync = false){
if(!$sync){
$param = [
'product'=>$products,
'data' =>$data
];
(new Receive($this,$param))->handle();
return true;
}
$this->api = new Ajax();
if(isset($data['rpc_ip']) && $data['rpc_ip']){
$this->api?->doRpcAction();
}else{
$this->api?->doAjax();
}
}
}
class Ajax
{
public function __construct(private $_param)
{
$this->init($this->_param);
}
public function init($params)
{
}
public function doAjax()
{
$this->_method = $this->_param['_method'];
$excFunc = $this->_method;
$this->$excFunc();
}
public function doRpcAction()
{
$rpc_ip = $this->_param['rpc_ip']; unset($this->_param['rpc_ip']); $rs = clsClient::api($rpc_ip.clsDirsENV::URL['matrix'],$this->_param); echo clsFunction::json($rs['result'],$rs['msg'],$rs['code']);
}
private function method1(){
}
} ?>