Страница 1 из 1

MQTT спам ошибкой в лог

Добавлено: Ср сен 19, 2018 12:27 pm
leo-777
Доброго дня. Прошу помощи программистов (ибо мой опыт закончился на Turbo basic лет 20 назад, но упорно стараюсь разбираться в новых языках, ибо интересно).
Мажор стоит на Малинке, образ форумный. По известной только ему (надеюсь, пока что) причине Москито начинает спамить в лог ошибкой

PHP Warning: fread() expects parameter 2 to be integer, float given in /var/www/lib/mqtt/phpMQTT.php on line 156

Спамит этой ошибкой с такой скоростью, что txt лог за час вырастает больше 10 ГиГ (!).
Рыл форум, видел подобные ошибки, но в других модулях... И решения не подходят. Москито переустанавливал, безрезультатно. А моих знаний в PhP категорично не хватает чтобы понять причину.
Спасайте, ребята, направьте, подскажите - хоть как определить причину ошибки и направление где искать.
Заранее спасибо за конструктив.

Re: MQTT спам ошибкой в лог

Добавлено: Вс сен 23, 2018 7:39 pm
leo-777
Мужики, совсем никаких мыслей как исправить? Я уже в отчаянии(
Ошибка:
PHP Warning: fread() expects parameter 2 to be integer, float given in /var/www/lib/mqtt/phpMQTT.php on line 156
Строка 156 на которую матерится в коде:
СпойлерПоказать

Код: Выделить всё

      /* read: reads in so many bytes */
        function read($int = 8192 ){
                //      print_r(socket_get_status($this->socket));
                $string="";
                $togo = $int;
                while (!feof($this->socket) && $togo>0) {
                
                
 /***СТРОКА 156, ВЫДАЮЩАЯ ОШИБКУ****/                        $togo = $int - strlen($string);
                        
                           if($togo) $string .= fread($this->socket, $togo);  
                 if (!$string) {
                  if (!$this->socket) {
                   echo "Trying to reconnect...";
                   @$this->disconnect();
                   sleep(2);
                   @$this->connect();
                  }
                 }
                }

Re: MQTT спам ошибкой в лог

Добавлено: Вс сен 23, 2018 9:22 pm
xor
PHP Warning: fread() expects parameter 2 to be integer, float given in /var/www/lib/mqtt/phpMQTT.php on line 156

Это он не матерится же, а предупреждает, черным по-английскому .
ПХП Предупреждение: функция fread() ожидает параметр 2 целый, а даётся плавающий , если читать, что пхп пытается сказать

fread в этой стоке, а не в той, что вы указали

Код: Выделить всё

if($togo) $string .= fread($this->socket, $togo);
из описания string fread ( resource handle, int length )

ну, не знаю, попробуйте так:

Код: Выделить всё

if($togo) $string .= fread($this->socket, (int)$togo);