Комар постоянно печатает сообщения, хотя я только что опубликовал их один раз.
Я пытался передать данные с iPad (используя cocoaMQTT) на компьютер с Ubuntu (используя mosquitto). Но я заметил, что на компьютере всегда продолжают печатать сообщения, которые я публиковал с iPad.
Я попытался изменить качество обслуживания (QoS) на режим 2, что означает, что данные принимаются только один раз, но они не работают.
Если я публикую 1 и 2, вывод будет:
1
2
1
2
И интервал между каждым «1 2» составляет одну минуту.
Вот код на iPad:
private func setMqtt() {
let clientID = "CocoaMQTT-" + String(ProcessInfo().processIdentifier)
mqtt = CocoaMQTT(clientID: clientID, host: host, port: 1883)
mqtt!.username = ""
mqtt!.password = ""
mqtt!.willMessage = CocoaMQTTWill(topic: "/will", message: "dieout")
mqtt!.keepAlive = 60
mqtt!.delegate = self
let isConnect = mqtt!.connect()
print("isConnected?", isConnect)
}
@IBAction func btnPressed(_ sender: Any) {
number += 1
mqtt?.publish("test", withString: String(number), qos: .qos2, retained: false, dup: false)
}
}
Вот простая команда mosquitto в Ubuntu:
mosquitto_sub -t "test" -q 2
Любая помощь будет принята с благодарностью.