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

怎么在另一個(gè)控制器方法中使用AsyncTcpConnection的send方法呢

foggy

問(wèn)題描述

我現(xiàn)在是在onWorkerStart中使用了AsyncTcpConnection監(jiān)聽(tīng)了一個(gè)服務(wù)端。
如下圖所示
截圖

現(xiàn)在我想著在另一個(gè)方法中使用send發(fā)送數(shù)據(jù),應(yīng)該怎么操作呢?
截圖

926 1 0
1個(gè)回答

walkor 打賞

如果你的AsyncTcpConnection是在webman自帶的http服務(wù)里初始化的,像你那樣用global 關(guān)鍵字聲明和使用就可以了。
如果AsyncTcpConnection是自定義進(jìn)程里初始化的,和webman自帶的http服務(wù)不是同一個(gè)進(jìn)程,則需要做一個(gè)跨進(jìn)程調(diào)用,
比如自定義進(jìn)程里再用http監(jiān)聽(tīng)一個(gè)端口來(lái)接受調(diào)用,代碼類似

public static function onWorkerStart() {
        $connection = new AsyncTcpConnection();
        $connection->onMessage = function (){};
        $connection->connect();
        $server = new Worker('http://127.0.0.1:1234');
        $server->onMessage = function (TcpConnection $httpConnection, \Workerman\Protocols\Http\Request $request) use ($connection) {
            $post = $request->post();
            // 給http客戶端發(fā)送響應(yīng)
            $httpConnection->send('ok');
            // 給TCP發(fā)送數(shù)據(jù)
            $connection->send(json_encode($post));
        };
        $server->listen();
    }

控制器里要調(diào)用自定義進(jìn)程的方法時(shí),用curl post數(shù)據(jù)給自定義進(jìn)程去調(diào)用即可

  • foggy 2023-11-06

    感謝大佬回復(fù),我現(xiàn)在是用gateway-worker啟動(dòng)了一個(gè)TCP服務(wù)端,用來(lái)接收DTS設(shè)備的數(shù)據(jù),然后圖中的那個(gè)AsyncTcpConnection是監(jiān)聽(tīng)的內(nèi)網(wǎng)中的一個(gè)交換機(jī)的串口服務(wù)器。流程是檢測(cè)到DTS主機(jī)發(fā)送過(guò)來(lái)的溫度數(shù)據(jù),然后根據(jù)溫度值,再下發(fā)給交換機(jī)的那個(gè)串口服務(wù)器。

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