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

在自己的tcp服務(wù)和第三方tcp服務(wù)器建立長(zhǎng)連接

liong

問題描述

tcp服務(wù)器A(在自己這邊)
tcp服務(wù)器B(在第三方)

1.設(shè)備和tcp服務(wù)器A()建立長(zhǎng)連接成功,然后需要和tcp服務(wù)器B建立長(zhǎng)連接;
2.設(shè)備發(fā)送給tcp服務(wù)器A的數(shù)據(jù),需轉(zhuǎn)發(fā)給tcp服務(wù)器B
3.tcp服務(wù)器B發(fā)送設(shè)備的數(shù)據(jù),先發(fā)送tcp服務(wù)器A,tcp服務(wù)器A再發(fā)設(shè)備
設(shè)備和tcp服務(wù)器A()建立長(zhǎng)連接和互發(fā)數(shù)據(jù)是成的
困難:怎么和tcp服務(wù)器b建立長(zhǎng)連接,沒有思路

想要實(shí)現(xiàn):設(shè)備上線,tcp服務(wù)器A上線,tcp服務(wù)器B上線
tcp服務(wù)器B發(fā)送數(shù)據(jù)給tcp服務(wù)器A,tcp服務(wù)器A能把數(shù)據(jù)發(fā)送給設(shè)備
設(shè)備發(fā)送數(shù)據(jù)給tcp服務(wù)器A,tcp服務(wù)器A把數(shù)據(jù)發(fā)送給tcp服務(wù)器B

為此你搜索到了哪些方案及不適用的原因

目前是在laravel里用GatewayWorker實(shí)現(xiàn)和設(shè)備的長(zhǎng)連接和互發(fā)數(shù)據(jù)

不局限框架,準(zhǔn)備把這個(gè)服務(wù)單獨(dú)部署.
請(qǐng)各位大佬不吝賜教

1075 1 0
1個(gè)回答

walkor 打賞

你這個(gè)類似代理,如果與B只建立一個(gè)連接參考這個(gè)
http://www.wtbis.cn/doc/workerman/async-tcp-connection/reconnect.html
如果每個(gè)客戶端連接到A后都需要與B建立一個(gè)連接,參考
http://www.wtbis.cn/doc/workerman/async-tcp-connection/construct.html
http://www.wtbis.cn/doc/workerman/tcp-connection/pipe.html

以上用法gatewayWorker里也可以用,也就是在Events.php的onWorkerStart onConnect 里使用 AsyncTcpConnection

  • liong 2024-01-05

    非常感謝,每個(gè)客戶端連接到a后都需要與b建立連接

  • liong 2024-01-10

    我用的是這個(gè)http://www.wtbis.cn/doc/workerman/tcp-connection/pipe.html
    其中有個(gè)代碼是$connection->pipe($connection_to_80);
    下面是我的代碼
    class Events
    {

    public static function onWorkerStart($businessWorker){
    
        Log::info('啟動(dòng)服務(wù)');
    }
    public static function onConnect($client_id){
        $connection_to_three = new AsyncTcpConnection('tcp://0.0.0.0:3000');
        // 設(shè)置將當(dāng)前客戶端連接的數(shù)據(jù)導(dǎo)向第三方的連接
    
        /*
        1 public static function onConnect($client_id,TcpConnection $connection) 在這里引入報(bào)錯(cuò),多了參數(shù)
        2 $connection = new TcpConnection(); 這樣寫報(bào)錯(cuò):需要參數(shù)
        3 $connection = new TcpConnection(connection_to_three); 這樣寫報(bào)錯(cuò):需要的是resource,不是obj
        如何在這個(gè)方法里使用 TcpConnection $connection
        */ 
    
        $connection->pipe($connection_to_three);
    
        // 設(shè)置80端口連接返回的數(shù)據(jù)導(dǎo)向客戶端連接
        $connection_to_three->pipe($connection);
        // 執(zhí)行異步連接
        $connection_to_three->connect();
        Log::info('連接成功-' . $client_id);
    
    }
    public static function onWebSocketConnect($client_id, $data){
        Log::info('onWebSocketConnect' . $client_id);
    }
    public static function onMessage($client_id, $message){
    
        Log::info('收到消息-' .$message.'-'. $client_id);
        Gateway::sendToClient($client_id,$message.'3000');
    }
    
    public static function onClose($client_id){
        Log::info('斷開連接-' . $client_id);
    }

    }

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