ios - MQTT-in-iOS - mqttDidDisconnect : Socket closed by remote peer

标签 ios swift mqtt iot

我尝试在 iOS 中实现 mqtt,但在发布 mqttDidDisconnect 时收到错误消息:“套接字已被远程对等方关闭”。问题出在服务器上还是发送请求上?

删除代码

func mqttDidPing(_ mqtt: CocoaMQTT) {
    print("mqttDidPing")
}

func mqttDidReceivePong(_ mqtt: CocoaMQTT) {
    print("mqttDidReceivePong")

}

func mqtt(_ mqtt: CocoaMQTT, didPublishAck id: UInt16) {
    print("didPublishAck : \(id)")
}

func mqtt(_ mqtt: CocoaMQTT, didPublishComplete id: UInt16) {
    print("didPublishComplete: \(id)")
}

func mqtt(_ mqtt: CocoaMQTT, didSubscribeTopic topic: String) {
    print("didSubscribeTopic: \(topic)")
}

func mqtt(_ mqtt: CocoaMQTT, didUnsubscribeTopic topic: String) {
    print("didUnsubscribeTopic: \(topic)")
}

func mqttDidDisconnect(_ mqtt: CocoaMQTT, withError err: Error?) {
    print("mqttDidDisconnect: \(err?.localizedDescription ?? "")")
}

func mqtt(_ mqtt: CocoaMQTT, didConnectAck ack: CocoaMQTTConnAck) {
    print("didConnectAck: \(ack)")
}

func mqtt(_ mqtt: CocoaMQTT, didPublishMessage message: CocoaMQTTMessage, id: UInt16) {
    print("didPublishMessage: \(message) and \(id)")
}

func mqtt(_ mqtt: CocoaMQTT, didReceiveMessage message: CocoaMQTTMessage, id: UInt16) {
    print("didReceiveMessage: \(message) and \(id)")
}

func mqtt(_ mqtt: CocoaMQTT, didReceive trust: SecTrust, completionHandler: @escaping (Bool) -> Void) {
    print("didReceive trust")
}

最佳答案

可以查看我的issue https://github.com/emqtt/CocoaMQTT/issues/252 .本质上是服务器端的问题,使用EMQX broker连接成功(下载自https://github.com/emqx/emqx/releases/download/v3.0.0/emqx-centos7-v3.0.0.zip)

关于ios - MQTT-in-iOS - mqttDidDisconnect : Socket closed by remote peer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50404878/

相关文章:

ios - 如何使用 iOS 版 Google Analytics SDK 跟踪推荐?

ios - 如何使用 iOS 轻松调整/优化图像大小?

python - 如何测量 paho-mqtt 网络中的延迟

mqtt - 横向扩展 mosquitto 代理

http - 物联网:我需要使用 MQTT 还是 HTTP?

ios - Swift:如果 key 不存在,decodeObjectForKey 会崩溃

ios - 如何有效地将NSInteger转换为NSDecimalNumber

objective-c - 按键字母顺序对 NSDictionary 值进行排序

ios - 使用 SecKeyGeneratePair 在 iOS 中生成 key 对失败并显示 errSecInteractionNotAllowed

ios - 单元测试 iOS 应用程序扩展