phpMQTT 內(nèi)存耗死問題

場(chǎng)景:(訂閱)鏈接不上mqtt的時(shí)候,一下代碼會(huì)出錯(cuò):

function read($int = 8192, $nb = false){
        //  print_r(socket_get_status($this->socket));
        
        $string="";
        $togo = $int;
        
        if($nb){
            return fread($this->socket, $togo);
        }
        // var_dump($this->socket);
    
        while (!feof($this->socket) && $togo>0) {
              $fread = fread($this->socket, $togo);
              $string .= $fread;
              $togo = $int - strlen($string);
         }
            return $string;
    }

錯(cuò)誤分析:鏈接不到mqtt的時(shí)候,$this->socket這個(gè)結(jié)果為false,while里面的一直會(huì)循環(huán),$string的大小會(huì)耗死內(nèi)存。所以加一個(gè)判斷,按如下代碼修改。

if ($this->socket) {
            while (!feof($this->socket) && $togo>0) {
                $fread = fread($this->socket, $togo);
                $string .= $fread;
                $togo = $int - strlen($string);
            }
        }

搞定,又能正常運(yùn)行了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評(píng)論 19 139
  • http://python.jobbole.com/85231/ 關(guān)于專業(yè)技能寫完項(xiàng)目接著寫寫一名3年工作經(jīng)驗(yàn)的J...
    燕京博士閱讀 7,804評(píng)論 1 118
  • ¥開啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個(gè)線程,因...
    小菜c閱讀 7,330評(píng)論 0 17
  • 開始計(jì)時(shí)調(diào)用下面這個(gè)方法就可以了。獲取驗(yàn)證碼的按鈕就會(huì)開始顯示倒計(jì)時(shí)直到60s后恢復(fù)最初狀態(tài) 實(shí)現(xiàn)代碼如下: 定義...
    Torin76閱讀 916評(píng)論 0 1
  • 我已經(jīng)不太記得當(dāng)時(shí)的感受了,因?yàn)闀r(shí)刻太久,本來已經(jīng)寫著一篇的了,但是因?yàn)槭褂民R克飛象操作不當(dāng)導(dǎo)致。數(shù)據(jù)都沒有了。嘗...
    肉團(tuán)先生閱讀 12,963評(píng)論 13 10

友情鏈接更多精彩內(nèi)容