Mqtt-сервер продолжает печатать одно и то же сообщение - PullRequest
0 голосов
/ 23 июня 2019

Комар постоянно печатает сообщения, хотя я только что опубликовал их один раз.

Я пытался передать данные с 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

Любая помощь будет принята с благодарностью.

...