paho-mqtt(pip install paho-mqtt)
import paho.mqtt.client as mqtt
HOST = "emq.16302.com"
PORT = 1883
USERNAME = "<你的MQTT用户名>" # 使用方法页「我的 MQTT 账号」里创建
PASSWORD = "<你的MQTT密码>"
CLIENT_ID = USERNAME + "_dev01" # 用户名_设备号(1~32位字母数字,同账号不重复);设备号要保存复用,重启换新号会多占名额
def on_connect(client, userdata, flags, reason_code, properties=None):
print("已连接", reason_code)
client.subscribe("u/%s/#" % USERNAME) # 只能订自己的账号空间
def on_message(client, userdata, msg):
print(msg.topic, msg.payload.decode())
client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, client_id=CLIENT_ID)
client.username_pw_set(USERNAME, PASSWORD)
client.on_connect = on_connect
client.on_message = on_message
client.connect(HOST, PORT, keepalive=60)
client.publish("u/%s/hello" % USERNAME, "hello from python")
client.loop_forever()
MQTT.js(npm install mqtt,浏览器/Node 通用,走 WebSocket)
import mqtt from "mqtt";
const USERNAME = "<你的MQTT用户名>"; // 使用方法页「我的 MQTT 账号」里创建
const PASSWORD = "<你的MQTT密码>";
const client = mqtt.connect("wss://emq.16302.com/mqtt", {
clientId: USERNAME + "_dev01", // 用户名_设备号(1~32位字母数字,同账号不重复);保存复用
username: USERNAME,
password: PASSWORD,
keepalive: 60,
});
client.on("connect", () => {
console.log("已连接");
client.subscribe("u/" + USERNAME + "/#"); // 只能订自己的账号空间
client.publish("u/" + USERNAME + "/hello", "hello from js");
});
client.on("message", (topic, payload) => {
console.log(topic, payload.toString());
});
MQTT.js 小程序构建版(npm install mqtt 后取 dist/mqtt.min.js)
// 微信小程序:npm install mqtt 后把 node_modules/mqtt/dist/mqtt.min.js
// 拷到小程序 utils/ 下引入(小程序只支持 wss,且需在 mp 后台配置 socket 合法域名:
// emq.16302.com)
const mqtt = require("../../utils/mqtt.min.js");
const USERNAME = "<你的MQTT用户名>"; // 使用方法页「我的 MQTT 账号」里创建
const PASSWORD = "<你的MQTT密码>";
const client = mqtt.connect("wss://emq.16302.com/mqtt", {
clientId: USERNAME + "_dev01", // 用户名_设备号(1~32位字母数字,同账号不重复);保存复用
username: USERNAME,
password: PASSWORD,
keepalive: 60,
});
client.on("connect", () => {
console.log("已连接");
client.subscribe("u/" + USERNAME + "/#");
client.publish("u/" + USERNAME + "/hello", "hello from 小程序");
});
client.on("message", (topic, payload) => {
console.log(topic, payload.toString());
});