我正在尝试用我的Raspberry pi创建一些东西,如果我执行一个操作,我会向CloudMQTT发送一个MQTT消息,这样监听它的人就知道该做什么了。
用户1按下按钮RBP知道它,并向CloudMQTT发送一个MQTT消息,另一个RBP检测到用户1按下了一个按钮,以便用户2知道何时按下按钮。
我所做的是:
import paho.mqtt.client as mqtt
def on_connect(client, userData, flags, rc):
print("Connected with result code " + str(rc))
client.subscribe("MyInstanceName/topic")
def on_message(client,userdata,msg):
print(msg.topic+ " "+ str(msg.payload))
if(msg.payload == "button"):
print("something")
if(msg.payload == "button2"):
print("something")
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.username_pw_set("user","password")
client.connect("m21.cloudmqtt.com",port,60)
client.loop_forever()
Users and ACL
因为我只需要2个用户,所以我创建了一个带有主题的User1,还可以为User2读/写
我不知道怎么出版,因为我有:
import paho.mqtt.publish as publish
publish.single("MyInstanceName/topic","button",hostname="m21.cloudmqtt.com")
publish.single("MyInstanceName/topic","button2",hostname="m21.cloudmqtt.com")
print("Done")
Traceback (most recent call last):
File "mqtt_publisher.py", line 3, in <module>
publish.single("MyInstanceName/topic","button",hostname="m21.cloudmqtt.com")
File "/Library/Python/2.7/site-packages/paho/mqtt/publish.py", line 223, in single
protocol, transport)
File "/Library/Python/2.7/site-packages/paho/mqtt/publish.py", line 159, in multiple
client.connect(hostname, port, keepalive)
File "/Library/Python/2.7/site-packages/paho/mqtt/client.py", line 839, in connect
return self.reconnect()
File "/Library/Python/2.7/site-packages/paho/mqtt/client.py", line 962, in reconnect
sock = socket.create_connection((self._host, self._port), source_address=(self._bind_address, 0))
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py", line 575, in create_connection
raise err
socket.error: [Errno 61] Connection refused