iOS MQTT 重连后收不到消息

标签 ios swift mqtt ios-mqtt-client-framework

我正在使用 MQTT-Client-Framework 开发一个 iOS 应用程序。 该应用程序在首次启动时成功与服务器通信。

但是我把它调到后台再回到前台后,就再也收不到MQTT服务器的消息了。

每次应用退出事件状态并变为事件状态时,我都会使用新的 Mqtt 对象(不同的客户端 ID)进行重新连接:

func applicationWillResignActive(_ application: UIApplication) {
    //Unsubscribe topic, disconnect the mqtt client, and close the client
}
func applicationDidBecomeActive(_ application: UIApplication) {
    //Renew mqtt client, set delegate, reconnect to server and subscribe topic
}

但是,在重新连接后,我不再收到来自服务器的任何消息。我检查了客户端状态,它已连接。如何让应用重连后接收消息?

最佳答案

通过将 clean session 标志更改为 false 来修复自己 不需要退订主题

关于iOS MQTT 重连后收不到消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41888494/

相关文章:

ios - UITableView - 控制或防止删除部分中的特定行

mqtt - 阻止 Mosquitto 向其所有者(发件人)发送消息

mqtt - 使用 MQTT 发送命令 - 有模式吗?

ios - 使用 Firebase iOS Swift 将通知从特定设备推送到特定设备

ios - Swift 2.1 Core Data - 使用 setValue() 预填充数据只保留最后一个

javascript - 解析云代码推送通知不起作用

ios - 如何在 Sprite 套件项目中设置初始场景?

swift - 为什么我仍然需要解开 Swift 字典值?

Swift 泛型方法应该使用重载的泛型函数

android - AMQP 或 MQTT 我可以选择哪个?