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

Проблемы/вопросы, связанные с запуском под различными платформами и конфигурациями.

Модератор: immortal

Ответить
leo-777
Сообщения: 7
Зарегистрирован: Вт сен 18, 2018 9:31 pm
Благодарил (а): 3 раза
Поблагодарили: 0

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

Сообщение leo-777 » Ср сен 19, 2018 12:27 pm

Доброго дня. Прошу помощи программистов (ибо мой опыт закончился на 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 категорично не хватает чтобы понять причину.
Спасайте, ребята, направьте, подскажите - хоть как определить причину ошибки и направление где искать.
Заранее спасибо за конструктив.
leo-777
Сообщения: 7
Зарегистрирован: Вт сен 18, 2018 9:31 pm
Благодарил (а): 3 раза
Поблагодарили: 0

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

Сообщение leo-777 » Вс сен 23, 2018 7:39 pm

Мужики, совсем никаких мыслей как исправить? Я уже в отчаянии(
Ошибка:
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();
                  }
                 }
                }
Аватара пользователя
xor
Сообщения: 2039
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 286 раз
Поблагодарили: 629 раз

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

Сообщение xor » Вс сен 23, 2018 9:22 pm

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);
За это сообщение автора xor поблагодарили (всего 2):
leo-777 (Вс сен 23, 2018 10:39 pm) • Tatarinov (Вс дек 02, 2018 12:28 pm)
Рейтинг: 2.33%
Ответить