宝体数据调用接口
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

65 lines
2.5 KiB

<?php
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
use app\common\dm\Dm;
use app\common\logic\PassFlow;
require_once __DIR__ . '/workman/vendor/autoload.php';
require_once __DIR__ . '../../source/application/common/dm/Dm.php';
require_once __DIR__ . '../../source/application/common/logic/PassFlow.php';
require_once __DIR__ . '../../source/thinkphp/helper.php';
require_once __DIR__ . '../../source/thinkphp/library/think/Config.php';
require_once __DIR__ . '../../source/application/common.php';
$config = require_once __DIR__ . '../../source/application/database.php';
$dm = new Dm($config['connections']['dm']);
// 注意:这里与上个例子不同,使用的是websocket协议
$ws_worker = new Worker("websocket://0.0.0.0:2000");
// 启动4个进程对外提供服务
$ws_worker->count = 4;
// 当收到客户端发来的数据后返回hello $data给客户端
$ws_worker->onMessage = function(TcpConnection $connection, $data) use($dm) {
$param = json_decode(html_entity_decode($data),true);
$returnData = ['code' => 0, 'msg' => 'error:请求失败'];
try {
$type = $param['type'];
$request = $param['request'];
switch ($type) {
case 'allGroupTimeNum':
$passData = PassFlow::allGroupTimeNum(['granularity' => $request['granularity'] ,'groupsId' => $request['groupsId']],$dm);
if (empty($passData['code'])) throw new Exception($passData['msg']);
$returnData['data'] = $passData['data'];
break;
case 'allGroupNum':
$passData = PassFlow::allGroupNum($dm);
$returnData['data'] = $passData;
break;
case 'realTimeData':
$passData = PassFlow::realTimeData($dm);
$returnData['data'] = $passData;
break;
case 'toDayGroupsEnterNum':
$passData = PassFlow::toDayGroupsEnterNum($dm);
$returnData['data'] = $passData;
break;
case 'allFlowTrends':
$passData = PassFlow::allFlowTrends($dm);
$returnData['data'] = $passData;
break;
default:
throw new Exception('type:参数数据错误');
}
$returnData['code'] = 1;
$returnData['msg'] = 'success';
} catch (Exception $e) {
$returnData['msg'] = $e->getMessage();
}
$connection->send(json_encode($returnData));
};
// 运行worker
Worker::runAll();