Browse Source

实时数据主动推送数据脚本

master
wanghongjun 3 years ago
parent
commit
f24c7a8ad4
  1. 30
      web/ws_task_real.php

30
web/ws_task_real.php

@ -0,0 +1,30 @@
<?php
use Workerman\Worker;
use Workerman\Timer;
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';
$worker = new Worker('websocket://0.0.0.0:2000');
// 进程启动后定时推送数据给客户端
$worker->onWorkerStart = function($worker) use($config) {
# 数据库链接不能在主进程,方法外是主进程
$dm = new Dm($config['connections']['dm']);
// 每2.5秒执行一次
$time_interval = 3;
Timer::add($time_interval, function()use($worker,$dm){
foreach($worker->connections as $connection) {
$passData = PassFlow::realTimeData($dm);
$returnData = ['data' => $passData];
$connection->send(json_encode($returnData));
}
});
};
Worker::runAll();
Loading…
Cancel
Save