чем суть. Есть mqtt брокер. Один клиент1 публикует сообщения, второй клиент2 подписывается на топик и принимает сообщения.
У меня случайно клиент1 нафлудил очень много сообщений и я закрыл клиент2.
Теперь при открытии клиент2 и подписки на топик все время летят старые сообщения. Переоткрываю клиент2 и опять летят сообщения без конца. При этом клиент1 выключен.
В mqtt я в курсе про reatain. Но даже если его включить, то брокер сохраняет последнее сообщение топика, а не все.
Открыл wireshark на нужном порте, там пусто. Wireshark видит когда клиент1 шлет сообщения.
Но вот клиент1 закрыт, не шлет сообщения и клиент2 постоянно получает старые сообщения.
В отладчике дошел до QTcpSocket, который шлет постоянно сигнал readyRead и откуда-то берет данные.
Если сокет не успевает все обработать, он где-то кеширует большие данные в ОС?
Ах да, еще открыл mosquito_sub, подписался и там тоже пусто, а на Qt когда подписываюсь, сразу баг
Обсуждают сегодня