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

tcp和websocket協(xié)議同時(shí)存在時(shí),tcp發(fā)送數(shù)據(jù)后會(huì)把websocket用戶給踢掉,求解

問(wèn)題描述

目前在做一個(gè)物聯(lián)網(wǎng)系統(tǒng),demo的Gateway用來(lái)做設(shè)備的tcp連接,

$gateway = new Gateway("tcp://0.0.0.0:8282");
$gateway->startPort = 2900;

又新建了一個(gè)websocket的Gateway用來(lái)做網(wǎng)頁(yè)的連接

$gateway = new Gateway("websocket://0.0.0.0:1234");
$gateway->startPort = 3000;

然后用網(wǎng)頁(yè)連接了websocket端口,用tcp測(cè)試工具連接了tcp端口,當(dāng)其中一個(gè)終端發(fā)消息時(shí)其他終端都可以收到消息,這是沒(méi)問(wèn)題的,但是tcp端發(fā)送消息后會(huì)把websocket端口所有用戶踢掉線,試了幾次都是如此。

目前是測(cè)試domo,基本上沒(méi)有太多的改動(dòng),所以不是代碼的問(wèn)題,這究竟是為什么?
測(cè)試環(huán)境windows10 64位

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

暫時(shí)沒(méi)找到同樣的問(wèn)題。

1193 3 0
3個(gè)回答

Gin

懷疑是 websocket 接收到消息了, 處理過(guò)程報(bào)錯(cuò), 導(dǎo)致掉線了

  • 追夢(mèng)隨想 2023-05-11

    網(wǎng)頁(yè)端沒(méi)有收到消息,直接掉線,代碼還是下載的demo,啥也沒(méi)改

        /**
         * 當(dāng)客戶端連接時(shí)觸發(fā)
         * 如果業(yè)務(wù)不需此回調(diào)可以刪除onConnect
         * 
         * @param int $client_id 連接id
         */
        public static function onConnect($client_id)
        {
            // 向當(dāng)前client_id發(fā)送數(shù)據(jù) 
            Gateway::sendToClient($client_id, "Hello $client_id\r\n");
            // 向所有人發(fā)送
            Gateway::sendToAll("$client_id login\r\n");
        }
    
       /**
        * 當(dāng)客戶端發(fā)來(lái)消息時(shí)觸發(fā)
        * @param int $client_id 連接id
        * @param mixed $message 具體消息
        */
       public static function onMessage($client_id, $message)
       {
            // 向所有人發(fā)送 
            Gateway::sendToAll("$client_id said $message\r\n");
       }
    
       /**
        * 當(dāng)用戶斷開(kāi)連接時(shí)觸發(fā)
        * @param int $client_id 連接id
        */
       public static function onClose($client_id)
       {
           // 向所有人發(fā)送 
           GateWay::sendToAll("$client_id logout\r\n");
       }
  • Gin 2023-05-11

    websocket 業(yè)務(wù)代碼看下

  • 追夢(mèng)隨想 2023-05-11
    <?php
    
    /**
     * websocket 請(qǐng)求網(wǎng)關(guān)
     */
    
    use \Workerman\Worker;
    use \Workerman\WebServer;
    use \GatewayWorker\Gateway;
    use \GatewayWorker\BusinessWorker;
    use \Workerman\Autoloader;
    
    // 自動(dòng)加載類(lèi)
    require_once __DIR__ . '/../../vendor/autoload.php';
    
    // gateway 進(jìn)程,這里使用Text協(xié)議,可以用telnet測(cè)試
    $gateway = new Gateway("websocket://0.0.0.0:1234");
    
    // gateway名稱,status方便查看
    $gateway->name = 'websocketGateway';
    // gateway進(jìn)程數(shù)
    $gateway->count = 4;
    // 本機(jī)ip,分布式部署時(shí)使用內(nèi)網(wǎng)ip
    $gateway->lanIp = '127.0.0.1';
    // 內(nèi)部通訊起始端口,假如$gateway->count=4,起始端口為4000
    // 則一般會(huì)使用4000 4001 4002 4003 4個(gè)端口作為內(nèi)部通訊端口
    $gateway->startPort = 3000;
    // 服務(wù)注冊(cè)地址
    $gateway->registerAddress = '127.0.0.1:1238';
    
    // 心跳間隔
    // $gateway->pingInterval = 40;
    
    // 連續(xù)幾次沒(méi)有心跳則斷開(kāi)連接
    // $gateway->pingNotResponseLimit = 1;
    
    // 如果不是在根目錄啟動(dòng),則運(yùn)行runAll方法
    if(!defined('GLOBAL_START'))
    {
        Worker::runAll();
    }
    
walkor 打賞

因?yàn)榭吹絹y碼了,可能編碼問(wèn)題。websocket通訊必須是utf8編碼,你的這個(gè)tcp客戶端發(fā)的消息可能不是utf8編碼。

  • Gin 2023-05-11

    一發(fā)中文就掉 編碼的問(wèn)題

  • 追夢(mèng)隨想 2023-05-11

    好的,感謝,經(jīng)過(guò)測(cè)試確實(shí)是編碼問(wèn)題,如果發(fā)送數(shù)字和字母不會(huì)出現(xiàn)掉線情況,這是個(gè)TCP測(cè)試工具帶來(lái)的問(wèn)題

Gin
  • 追夢(mèng)隨想 2023-05-11

    感謝,如果發(fā)送數(shù)字和字母不會(huì)出現(xiàn)掉線情況,這是個(gè)TCP測(cè)試工具帶來(lái)的問(wèn)題

  • 追夢(mèng)隨想 2023-05-11

    經(jīng)過(guò)測(cè)試確實(shí)是編碼問(wèn)題

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