美文网首页
phpMQTT 内存耗死问题

phpMQTT 内存耗死问题

作者: 焚_44b3 | 来源:发表于2017-12-27 18:19 被阅读323次

    场景:(订阅)链接不上mqtt的时候,一下代码会出错:

    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;
        }
    

    错误分析:链接不到mqtt的时候,$this->socket这个结果为false,while里面的一直会循环,$string的大小会耗死内存。所以加一个判断,按如下代码修改。

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

    搞定,又能正常运行了。

    相关文章

      网友评论

          本文标题:phpMQTT 内存耗死问题

          本文链接:https://www.haomeiwen.com/subject/gttpgxtx.html