我尝试在 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/