国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

怎么在其他web項(xiàng)目向BusinessWorker客戶端發(fā)送指令,并獲取結(jié)果

smart

比如,向物聯(lián)網(wǎng)設(shè)備發(fā)送“獲取參數(shù)”指令,并返回參數(shù)

2419 1 2
1個(gè)回答

walkor 打賞

一個(gè)比較簡(jiǎn)單的方法,用gatewayClient 給設(shè)備發(fā)指令,設(shè)備返回指令結(jié)果,gatewayWorker的onMessage里接收結(jié)果并存入數(shù)據(jù)庫(kù),web端定時(shí)讀下數(shù)據(jù)庫(kù),得到結(jié)果。

數(shù)據(jù)庫(kù)也可以采用redis,利用redis的 publish 和subscribe,這樣更實(shí)時(shí)一些。
web端代碼類似:

$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
Gateway::$registerAddress = 'xxx:xx';
Gateway::sendToUid(設(shè)備id, '命令數(shù)據(jù)');
$redis->subscribe(設(shè)備id, function($instance, $channelName, $message) {
  var_export($message);
  die;
};

gatewayWorker 里的events.php 代碼類似

class Events
{
    public static function onWorkerStart()
    {
        global $redis;
        $redis = new Redis();
        $redis->connect('127.0.0.1', 6379);
    }

    public static function onMessage()
    {
        // 收到設(shè)備返回的消息
        $redis->publish(設(shè)備id, '設(shè)備返回的消息');
    }

}
年代過于久遠(yuǎn),無法發(fā)表回答
??