1. Описание проблемы
1. Используйте MQTTX, чтобы проверить, может ли клиент создавать сущности.
При отправке запроса на регистрацию объекта через MQTTX объект может быть успешно зарегистрирован на сервере MQTT.
2. Объект невозможно создать с помощью ESP32.
При отправке запроса на регистрацию через функцию публикации() в ESP32 об ошибке не будет сообщено, но сервер MQTT не даст ответа.
2. Причина проблемы
1. Строка JSON, запрошенная зарегистрированным лицом, слишком длинная и усекается при отправке на сервер MQTT.
Эта проблема беспокоит меня уже два дня, и я не могу в ней разобраться, потому что ошибки вообще нет.
Наконец, я включил мониторинг журнала MQTT и проверил файл журнала построчно и обнаружил, что запрос формата JSON, полученный MQTT в журнале, был обрезан и превратился в неполный запрос.
Причина неизвестна, поскольку длина строки JSON одинакова в клиенте MQTTX и ESP32. Возможно, что поток не заблокирован, но это менее вероятно, поскольку проблема все еще существует, когда я отправляю запрос публикации() только один раз.
3. Решение
1. Уменьшите длину строки JSON, отправляемой для регистрации запроса объекта.
Я удалил некоторые ненужные параметры, такие как «значок», и сменил производителя с китайских иероглифов на английский (китайские иероглифы были слишком длинными после перекодирования),
поэтому проблема была успешно решена.