У меня есть брокер mosquitto, работающий на Ubuntu на EC2. Также я внес изменения max_queued_messages 1000
и max_inflight_messages 10
в /etc/mosquitto/mosquitto.conf
Я публикую для этого брокера с qos = 2 и включенным удержанием. Для публикации использую mosquitto_pub -t 1 -m "{c:{d:\"pN\",m:\"Pr1\"}}" -r -q 2
. На стороне подписчика я использую библиотеку org.eclipse.paho.android.service:1.0.2
с таким же qos = 2.
и предоставляет только одну опцию options.setMqttVersion(MqttConnectOptions.MQTT_VERSION_3_1)
для параметров client.connect(options)
.
Проблема возникает, если абонентское устройство, подключенное к серверу, отключается и повторно подключается по какой-либо причине, а затем получает только одно последнее сохраненное сообщение, в нем отсутствуют все промежуточные сообщения.
А также, если еще ничего не опубликовано, все равно после повторного подключения появляется последнее сохраненное сообщение, которое абонентское устройство могло уже получить до отключения.
Я хочу, чтобы после переподключения абонент получал все сообщения, которые были опубликованы в период отключения, и если уже были получены, то больше не показывались. Хотел знать, как и где это делать.