蚊子不断重复打印消息,尽管我只发布了一次。
我试图将数据从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)
}
}
这是Ubuntu上的简单mosquitto命令:
mosquitto_sub -t "test" -q 2
任何帮助将不胜感激。