У меня есть следующий файл mosquitto.conf, но когда Интернет выходит из строя, он не буферизируется и не отправляется в AWS IoT, когда Интернет возвращается.
Вопросов:
Что я сделал не так с конфигурацией mosquitto, что офлайн-буферизация не работает должным образом?
Я подумываю написать свой собственный мост на NodeJS. Любые рекомендации библиотеки NodeJS MQTT, поддерживающей автономную буферизацию?
Спасибо!
pid_file /var/run/mosquitto.pid
persistence true
persistence_location /var/lib/mosquitto/
log_dest file /var/log/mosquitto/mosquitto.log
# =================================================================
# Bridges to AWS IOT
# =================================================================
# AWS IoT endpoint, use AWS CLI 'aws iot describe-endpoint'
connection awsiot
address aws.iot.us-west-2.amazonaws.com:8883
# Specifying which topics are bridged
topic outTopic out 1
# Setting protocol version explicitly
bridge_protocol_version mqttv311
bridge_insecure false
# Bridge connection name and MQTT client Id,
# enabling the connection automatically when the broker starts.
cleansession true
clientid bridgeawsiot
start_type automatic
notifications false
log_type all
cafile /home/pi/ca.crt
keyfile /home/pi/server.key
certfile /home/pi/server.crt
tls_version tlsv1
# =================================================================
# Certificate based SSL/TLS support
# -----------------------------------------------------------------
#Path to the rootCA
bridge_cafile /home/pi/rootCA.cer
# Path to the PEM encoded client certificate
bridge_certfile /home/pi/bridge.cert.pem
# Path to the PEM encoded client private key
bridge_keyfile /home/pi/bridge.private.key





cleansession true в вашей конфигурации моста означает, что сообщения не ставятся в очередь, когда мост не работает.
Тот факт, что брокер на другом конце (AWT) не поддерживает постановку сообщений в очередь, не означает, что вы должны принудительно применять его на своем конце. Если вы удалите флаг из конфигурации, он должен поставить их в очередь на пи для отправки в AWS.
Я понял причину, по которой я делал
cleansession=true, из-за ограничения, что AWS IoT поддерживает только cleansession = true. Есть ли альтернативы хранению локального кеша?