我想用从树莓得到的距离值不断更新我的swift应用程序中的标签。覆盆子的配置工作正常,它每秒将值作为字符串发布给我,因此我可以通过MQTT接收它。 现在,我用尽了所有想法来订阅此值。我需要某种循环吗?我尝试调试器的所有内容在订阅中均无效。 收到消息后,有可能让我的应用知道吗? 我的代码(摘要)
override func viewDidLoad() {
super.viewDidLoad()
configureMQTT()
mqttClient.subscribe(distanceTopic, qos: .qos1)
func configureMQTT() {
let clientID = "IPhoneTest"
let host = "192.168.2.105"
let port = UInt16(1883)
mqttClient = CocoaMQTT(clientID: clientID, host: host, port: port)
mqttClient.username = ""
mqttClient.password = ""
mqttClient.keepAlive = 60
mqttClient.delegate = self
}
func mqtt(_ mqtt: CocoaMQTT, didReceiveMessage message: CocoaMQTTMessage, id: UInt16 ) {
if (message.topic == distanceTopic){
print(message.string!)
我知道它为零,因为它在启动应用程序后只订阅一次。我无法将订阅设置为动作,因此是否需要像这样的循环或其他动作? 谢谢您的帮助!