gpt4 book ai didi

ios - 使用 CocoaMQTT 连接到我的 mqtt 代理时出现问题

转载 作者:行者123 更新时间:2023-11-28 13:33:40 28 4
gpt4 key购买 nike

我正在制作一个与 Mqtt 代理通信的 iOS 应用程序,主要用于发布消息。但是当我尝试使用 CocoaMQTT 库连接代理时,它总是给我连接错误。

我正在尝试使用 CocoaMQTT 最新版本和 1.1.3 版本。但是两者都连接失败并给我错误

(Error Domain=kCFStreamErrorDomainNetDB Code=8 "nodename nor servname provided, or not known" UserInfo={NSLocalizedDescription=nodename nor servname provided, or not known})

 formatter.dateFormat = "yyyy-MM-dd HH:mm:ss.SSS"
let dateString = formatter.string(from: date)
let clientID = "smart-curtain-"+dateString
mqttClient = CocoaMQTT.init(clientID: clientID, host:
contantData.MQTT_BROKER_URL, port: UInt16(1883))
mqttClient.username = nil
mqttClient.password = nil
mqttClient.autoReconnect = true
mqttClient.allowUntrustCACertificate = true
mqttClient.keepAlive = 60
mqttClient.enableSSL = false

因此它总是以mqttDidDisconnect 委托(delegate)方法结束。我的经纪人 URL 是 tcp://xyz.com(xyz 只是一个例子),端口是 1883。我已经从我的 iPhone 上尝试了 2-3 个 Mqtt 收费应用程序来连接经纪人详细信息,但没有人能够连接它。

但相同的设置在 Android 应用程序中运行良好。 (使用的是net.igenius:mqttservice:1.6.4)(这个broker不需要认证)

最佳答案

如 CocoaMQTT doc 所示,init 方法中的 host 条目应该只是主机名,而不是 URI:

let clientID = "CocoaMQTT-" + String(NSProcessInfo().processIdentifier)
let mqtt = CocoaMQTT(clientID: clientID, host: "localhost", port: 1883)
mqtt.username = "test"
mqtt.password = "public"
mqtt.willMessage = CocoaMQTTWill(topic: "/will", message: "dieout")
mqtt.keepAlive = 60
mqtt.delegate = self
mqtt.connect()

例如应该是 xyz.com 而不是 tcp://xyz.com

关于ios - 使用 CocoaMQTT 连接到我的 mqtt 代理时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56982759/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com