MQTT 插件¶
MQTT broker 需要支持 wss(websockets) 协议, 才能在Scratch里连接它
CodeLab合作伙伴英荔教育为CodeLab社区用户提供一个免费 MQTT broker:
- url: mqtt.aimaker.space
- 默认用户名/密码: guest/test
- tcp port: 1883
- tls port 8883
- websockets port: 8084
Demo¶
scratch client¶
python client¶
基于 paho-mqtt
import paho.mqtt.client as mqtt
# The callback for when the client receives a CONNACK response from the server.
def on_connect(client, userdata, flags, rc):
# print("Connected with result code "+str(rc))
if rc == 0:
print('已连接')
else:
print('连接出错!')
# Subscribing in on_connect() means that if we lose the connection and
# reconnect then subscriptions will be renewed.
client.subscribe("test")
# The callback for when a PUBLISH message is received from the server.
def on_message(client, userdata, msg):
print(msg.topic+" "+str(msg.payload))
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.username_pw_set('guest', 'test')
client.connect("mqtt.aimaker.space", 1883, 60)
# Blocking call that processes network traffic, dispatches callbacks and
# handles reconnecting.
# Other loop*() functions are available that give a threaded interface and a
# manual interface.
client.loop_forever() # client.loop_start() 是非阻塞的
MicroBlocks demo¶
Snap! Demo¶
cli demo¶
先安装 mosquitto
pub: mosquitto_pub -h mqtt.aimaker.space -u guest -P test -t 'scratch' -m 'hi --from cli'
sub: mosquitto_sub -h mqtt.aimaker.space -u guest -P test -t "cli"