Python 如何向MQTT消息发送响应?
我想要一个树莓A向树莓B发送一个按摩,树莓B应该自动发送一个按摩。我知道这是一个初学者的问题,但我是其中之一,我真的挣扎了一整天试图找到一个anwser 这是我客户的密码Python 如何向MQTT消息发送响应?,python,mqtt,Python,Mqtt,我想要一个树莓A向树莓B发送一个按摩,树莓B应该自动发送一个按摩。我知道这是一个初学者的问题,但我是其中之一,我真的挣扎了一整天试图找到一个anwser 这是我客户的密码 import paho.mqtt.client as mqtt MQTT_SERVER = "localhost" MQTT_PATH = "test_channel" def on_connect(client, userdata, flags, rc): print("Connected with resul
import paho.mqtt.client as mqtt
MQTT_SERVER = "localhost"
MQTT_PATH = "test_channel"
def on_connect(client, userdata, flags, rc):
print("Connected with result code "+str(rc))
client.subscribe(MQTT_PATH)
# The callback for when a PUBLISH message is received from the server.
def on_message(client, userdata, msg):
print(msg.topic+" "+str(msg.payload))
# more callbacks, etc
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.connect(MQTT_SERVER, 1883, 60)
client.loop_forever()
这是我出版商的代码
import paho.mqtt.publish as publish
MQTT_SERVER = "192.168.1.5"
MQTT_PATH = "test_channel"
publish.single(MQTT_PATH, "Hello World!", hostname=MQTT_SERVER)
我应该如何编写不同的代码,以便我的客户能够返回消息,例如:“Hello back”有两种消息模型:
- 点对点(一对一)-消息通过队列从一个应用程序发送到另一个应用程序。可以有多个消费(接收器)应用程序,但其中只有一个将接收消息
- 发布/订阅-将消息发布到某个主题,多个使用者(订阅者)将每个接收消息的副本。可以有1个或多个应用程序向同一主题发布消息,也可以有1个或多个应用程序使用(接收)消息
MQTT_PATH = "test_channel"
publish.single(MQTT_PATH, "Hello World!", hostname=MQTT_SERVER)
MQTT中没有“通道”这样的东西。您的代码正在将消息发布到名为:test_channel的主题
最好在主题名称中使用一点层次结构
i、 e
- pivk95/食品/汉堡
- pivk95/食物/薯条
- pivk95/食品/比萨饼
- pivk95/食品/墨西哥煎饼
- pivk95/饮料/奶昔
- pivk95/饮料/软饮料
请记住,任何数量的应用程序都可以将消息发布到给定的主题,任何数量的应用程序都可以订阅给定的主题并接收消息的副本 一个好的问题还应该显示您的具体错误或问题(例如,如果您遇到异常,则显示异常文本),而不是只显示您的现有代码,而不说明它是如何失败的;参见定义。(类似地,对于同一页,代码示例应该是最短的东西,可以让人们自己真实地再现相同的问题——因此,如果你想在这里有一个
#更多的东西注释掉,你需要确保代码仍然足够有效,以显示注释中的问题)。此代码没有问题。我只是希望RaspberryPI-B能够回答RaspberryPI-a的问题。我只是一个编程新手,所以我真的不知道如何更改此代码才能做到这一点。听起来你可能需要一个不同的频道来回答,这样其他系统就可以在上面发送答案了?没有什么需要的代码是您尚未拥有的--只需要复制您已经拥有的用于订阅和侦听客户端的代码,这样它就可以侦听响应,将通道标识符更改为另一个。我希望RPI-B自动响应来自RPI-a的消息。因此,如果我使用不同的通道,它还能自动响应吗?