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

$gateway->router偶現(xiàn)取不到值的情況,導致服務異常退出

IT小馬

問題描述

$gateway->router偶現(xiàn)取不到值的情況,導致服務異常退出

程序代碼

//指定 WebsocketBusinessWorker
        $gateway->router = function ($worker_connections, $client_connection) {
            $connection_names = [];
            foreach ($worker_connections as $key => $worker_connection) {
                $values = explode(':', $key);
                if ($values[1] == 'WebsocketBusinessWorker') {
                    $connection_names[$values[2]] = $key;
                }
            }
            if (!count($connection_names)) {
                return null;
            }
            $key = $connection_names[mt_rand(0, count($connection_names) - 1)];
            empty($client_connection->businessworker_address) && $client_connection->businessworker_address = $key;
            return $worker_connections[$client_connection->businessworker_address];
        };

截圖報錯信息里報錯文件相關代碼

截圖

915 1 0
1個回答

walkor 打賞

找不到值是因為businessWorker和gateway沒建立起連接,例如服剛啟動時,例如業(yè)務報錯導致businessWorker退出重啟時,一般都是短暫的。如果沒有可用的businessWorker進程,應該返回false,不要返回null

if (!count($connection_names)) {
    return null;
}

改成

if (!count($connection_names)) {
    return false;
}
  • IT小馬 2023-03-15

    請問返回false就不會調用$worker_connection->send($gateway_data)方法了么?如果還會調的話,那還是會報錯啊

  • walkor 2023-03-15

    返回false不會調用send

  • IT小馬 2023-03-15

    好的,感謝

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