paho-mqtt subscribe 查看订阅状态
paho-mqtt subscribe check subscription status
我在 python2.7 中使用 paho-mqtt 1.2 在订阅特定主题后收听经纪人广播的消息。
它的初始化像
import paho.mqtt.client as mqtt #python mqtt package
# initialize MQTT client
mqttc = mqtt.Client()
# register listener functions
mqttc.on_connect = on_connect
mqttc.on_subscribe = on_subscribe
mqttc.on_message = on_message
# connect to MQTT broker
mqttc.connect(<IP>, <PORT>, <KEEPALIVE_INTERVAL>)
# subscribe a topic to the broker
subscr = mqttc.subscribe(<TOPIC_NAME>, 0)
使用自定义函数
def on_connect(client, userdata, flags, rc):
print "connected"
def on_subscribe(client, userdata, mid, granted_qos):
print "subscribed"
def on_message(client, userdata, msg):
print "message received"
从 API 我可以读到 subscribe() 函数
函数returns一个元组(result,mid),其中result为
MQTT_ERR_SUCCESS 表示成功或 (MQTT_ERR_NO_CONN, None) 如果
客户端当前未连接。 mid 是消息 ID
订阅请求。中间值可用于跟踪订阅
通过检查 on_subscribe() 中的中间参数来请求
如果定义了回调。
我现在正在尝试检索有关订阅的状态,即我是否订阅了一个 VALID 主题。据我了解,如果主题格式无效,subscribe() 函数只会 returns 一个错误代码。但是我想提取信息,如果我订阅了一个实际广播的主题。
到目前为止,无论我订阅了哪个主题(有效或无效),我都会收到一个包含订阅 ID 的 on_subscribe() 调用。
您始终可以订阅所有(语法正确的)主题,因为消息可能会在将来的某个时候发布到它。
在 MQTT 中,无需在使用之前声明主题,代理将允许您订阅消息从未(并且可能永远不会)发布消息的主题。
主题仅在向该主题发布消息时有效。
了解实际使用哪些主题的唯一方法是订阅它们并查看是否出现消息。
我在 python2.7 中使用 paho-mqtt 1.2 在订阅特定主题后收听经纪人广播的消息。
它的初始化像
import paho.mqtt.client as mqtt #python mqtt package
# initialize MQTT client
mqttc = mqtt.Client()
# register listener functions
mqttc.on_connect = on_connect
mqttc.on_subscribe = on_subscribe
mqttc.on_message = on_message
# connect to MQTT broker
mqttc.connect(<IP>, <PORT>, <KEEPALIVE_INTERVAL>)
# subscribe a topic to the broker
subscr = mqttc.subscribe(<TOPIC_NAME>, 0)
使用自定义函数
def on_connect(client, userdata, flags, rc):
print "connected"
def on_subscribe(client, userdata, mid, granted_qos):
print "subscribed"
def on_message(client, userdata, msg):
print "message received"
从 API 我可以读到 subscribe() 函数
函数returns一个元组(result,mid),其中result为 MQTT_ERR_SUCCESS 表示成功或 (MQTT_ERR_NO_CONN, None) 如果 客户端当前未连接。 mid 是消息 ID 订阅请求。中间值可用于跟踪订阅 通过检查 on_subscribe() 中的中间参数来请求 如果定义了回调。
我现在正在尝试检索有关订阅的状态,即我是否订阅了一个 VALID 主题。据我了解,如果主题格式无效,subscribe() 函数只会 returns 一个错误代码。但是我想提取信息,如果我订阅了一个实际广播的主题。
到目前为止,无论我订阅了哪个主题(有效或无效),我都会收到一个包含订阅 ID 的 on_subscribe() 调用。
您始终可以订阅所有(语法正确的)主题,因为消息可能会在将来的某个时候发布到它。
在 MQTT 中,无需在使用之前声明主题,代理将允许您订阅消息从未(并且可能永远不会)发布消息的主题。
主题仅在向该主题发布消息时有效。
了解实际使用哪些主题的唯一方法是订阅它们并查看是否出现消息。