【发布时间】:2021-03-15 06:28:49
【问题描述】:
我尝试了我的订阅者,它是使用带有 HiveMQ 代理的 Paho python 客户端编写的,它工作得很好,但它不适用于 IBM。
从Subscribing to application status messages 和这个question,我实现了订阅者客户端如下(我从我的IBM Watson 平台的应用程序部分获得了"a:<ORG-ID>:<App-ID>"):
def on_connect(client, userdata, flags, rc):
print("CONNACK received with code %d." % (rc))
(result, mid) = client.subscribe("iot-2/app/MyAppID/sensordata", 2)
print("result: ", result, ", mid: ", mid)
if result == paho.MQTT_ERR_SUCCESS:
print("success in subscribing.")
def on_subscribe(client, userdata, mid, granted_qos):
print("Subscribed: "+str(mid)+" "+str(granted_qos))
client = paho.Client("a:<ORG-ID>:<App-ID>")
# adding callbacks to client
client.on_connect = on_connect
client.on_subscribe = on_subscribe
client.on_message = on_message
client.username_pw_set("a-<ORG-ID>-<App-ID>","my authentication token")
client.tls_set( ca_certs=None, certfile=None, keyfile=None, cert_reqs=ssl.CERT_REQUIRED,
tls_version=ssl.PROTOCOL_TLS, ciphers=None)
client.connect("<ORG-ID>.messaging.internetofthings.ibmcloud.com", 8883, 60)
client.loop_start()
当我运行该项目时,我得到了值为0 的rc,这意味着successful connection。
这是on_connect() 回调打印:
收到带有代码 0 的 CONNACK。 结果:0,中间:2 订阅成功。
并且没有调用on_subscribe() 回调。我做错了什么?
【问题讨论】:
标签: python-3.x ibm-cloud mqtt paho