实现M2M的功能,主要用到规则引擎。
一、 定义协议
定义数据内容为JSON格式:
{
"header": {
"command": "getAttributes",
"transactionID": "0e60b714",
"SAID": "目标设备名称"
},
"body": {
"led1": null
}
}
二、 定义两个设备
三、 定义规则引擎
1. 创建规则
点击右侧“创建规则”
输入规则名称和规则描述。
2. 处理数据,添加sql语句
点右侧的SQL调试,输入JSON格式数据:
{'header':{'command':'setAttributes','transactionID':'0d04b714','SAID':'你的设备id'},'body':'msg from :192.168.56.1|securemode=2,signmethod=hmacsha1,timestamp=1508203337880|,1508204609549'}
解析结果:
解析正确,关闭调试窗口,点击“保存”按钮。
注意这里的结果,是消息订阅方实际会收到的内容格式。如果要其它消息也转发,可以在sql语句加入,* ,意思获取所有数据。
3. 转发数据
点击转发数据的“添加方法”
填写内容:
点击确定。
四、 写demo测试程序
开源项目地址:
https://gitee.com/xundh/ALiWuLianWangTaoJianDemo
运行App.java,开两个窗口。
填写说明:
- productKey : 填写产品的productKey
- deviceName:填写设备名称
- secret: 填写deviceSecret设备secret
分别点击两窗口的连接云按钮
- 分别点击两窗口的订阅按钮
- 点击左侧窗口的“发布”按钮,在右侧窗口的Console可以看到订阅消息
- 点击右侧窗口的“发布”按钮,在左侧窗口的Console可以看到订阅消息
目前消息没有显示在Win窗口界面上。
查看控制台log
消息转发成功。
五、 安卓端测试程序
https://gitee.com/xundh/ALiWuLianWangTaoJianDemo 下 MqttClientAndroid 文件夹是安卓端测试程序。