赞
踩
陈拓 chentuo@ms.xab.ac.cn 2020/02/10-2020/02/10
MQTT.fx官方网站:http://mqttfx.jensd.de/
MQTT.fx的基本用法请看《MQTTfx连接物联网云平台》一文:https://zhuanlan.zhihu.com/p/101104351
本文讲述MQTT.fx的高级用法,通过js脚本发送和接收云端的消息。当你需要连续向云端发送多条消息时,脚本特别好用。
MQTT.fx默认的工作目录是C:\Users\Administrator\AppData\Local\MQTT-FX
配置文件mqttfx-config.xml中记录了这个位置:
<workingDir>C:\Users\Administrator\AppData\Local\MQTT-FX</workingDir>
脚本文件放在文件夹scripts中,里面已经有一个模板了:
01__Switch_Fountain_Test.js
我们再创建2个js文件:02__Publish_Test.js和03__Subscribe_Test.js
先创建js文件再打开MQTT.fx,MQTT.fx打开后创建的js文件列表中看不到。
MQTT.fx不带编辑器,需要指定一个外部编辑器。
右击一个js文件 > 属性
更改
选择记事本,确定。
下面以阿里云物联网平台为例上报属性,也就是上传数据到云端。
打开MQTT.fx > 连接Connect > 选择Scripts > 下拉列表 > 选择脚本
完整js代码如下:
var Thread = Java.type("java.lang.Thread");
function execute(action) {
out("Test Script: " + action.getName());
publishTemp(20.8);
action.setExitCode(0);
action.setResultText("done.");
out("Test Script: Done");
return action;
}
function publishTemp(temp) {
out("temp value : " + temp);
var data = '{"id":"1","version":"1.0","params":{"Temperature":' + temp + '},"method":"thing.event.property.post"}';
mqttManager.publish("/sys/a1KDpQ8yhGW/BedroomTemperature/thing/event/property/post", data);
}
function out(message){
output.print(message);
}
每隔5分钟上报一次数据,发送10个数据,取10~27之间的整数随机值:
var Thread = Java.type("java.lang.Thread");
function execute(action) {
out("Test Script: " + action.getName());
var temp;
for (var i = 0; i < 10; i++) {
temp = random(10, 27);
publishTemp(temp);
Thread.sleep(300000);
}
action.setExitCode(0);
action.setResultText("done.");
out("Test Script: Done");
return action;
}
function publishTemp(temp) {
out("temp value : " + temp);
var data = '{"id":"1","version":"1.0","params":{"Temperature":' + temp +
'},"method":"thing.event.property.post"}';
mqttManager.publish
("/sys/a1KDpQ8yhGW/BedroomTemperature/thing/event/property/post", data);
}
function random(lower, upper) {
return Math.floor(Math.random() * (upper - lower+1)) + lower;
}
function out(message){
output.print(message);
}
日志文件mqttfx.log不断在增长,占用空间,必要时清理一下。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。