PubSubClient — MQTT_MAX_PACKET_SIZE Как рассчитывается
Я использую ESP32 и хочу исключить возможную ошибку MQTT. В PubSubClient
для MQTT_MAX_PACKET_SIZE
установлено значение 256. Является ли 256 размером только для сообщения? если нет, то что остается только для сообщений?
@Guy . D, 👍1
1 ответ
Лучший ответ:
▲ 3
Это максимальный размер всего пакета. В publish()
эта проверка выполняется:
if (MQTT_MAX_PACKET_SIZE < MQTT_MAX_HEADER_SIZE + 2+strlen(topic) + plength) {
Таким образом, максимальная длина полезной нагрузки сообщения будет
MQTT_MAX_PACKET_SIZE - MQTT_MAX_HEADER_SIZE - 2 - strlen(topic)
MQTT_MAX_HEADER_SIZE
определяется как 5, поэтому, если у вас есть, например, тема из 20 символов, у вас останется 256 - 5 - 2 - 20 = 229
байтов для ваша полезная нагрузка.
,
@Majenko
Смотрите также: