完成设备端和服务端业务开发后,启动服务端程序,与物联网平台建立连接,然后启动设备端模拟脚本上报数据,在服务端调用Pub接口下发控制指令,进行整体联调运行。
设备端上报数据联调
设备端
在CMD窗口,使用cd
命令找到设备端的iot_device.js文件所在路径,然后输入如下命令,运行iot_device.js代码,启动设备。
node iot_device.js
设备接入成功,打印业务报文,如下所示。
payload=[ DE02,23,16,011101010,am024,1d478f ]
payload=[ DE02,29,24,011101010,am024,1d478f ]
payload=[ DE02,28,17,011101010,am024,1d478f ]
payload=[ DE02,26,18,011101010,am024,1d478f ]
payload=[ DE02,25,10,011101010,am024,1d478f ]
payload=[ DE02,18,10,011101010,am024,1d478f ]
payload=[ DE02,29,13,011101010,am024,1d478f ]
服务端
在IntelliJ IDEA,运行已完成开发的AmqpClient.java程序。
说明 本示例Demo代码中,添加了结束程序的代码(Thread.sleep(60 * 1000);),即程序启动成功,运行一分钟后会结束。实际场景中,您可根据需要自行设置运行时间。
服务端实时打印从物联网平台获取到的消息数据。报文中包含设备原始报文完整内容,如下图所示。
物联网平台云端
登录物联网平台控制台,进入对应的实例,选择 。
可以看到业务类型为设备行为的日志,记录设备上线(online)、设备离线(offline),如下图所示。
还可以查看上行消息的消息详情,包括Topic和Payload,跟踪上行消息的流转过程,如下图所示。
图中的日志已按产生时间标记顺序,依次为:
- 设备上报消息(图示中①)。
- 消息从规则引擎流转到AMQP(图示中②)。
- AMQP推送消息到服务端(图示中③)。
- 服务端响应消息ACK(图示中④)。
在控制台左侧,选择消费组列表,单击消费组充电宝业务数据处理对应的查看,进入消费组详情页面,可看到消息处理速率、堆积量、最后一条消息处理时间,以及服务端(即下图中的客户端)的信息。
,单击服务端下发控制指令
服务端
在IntelliJ IDEA,运行已完成开发的PubClient.java程序。
在服务端执行Pub接口调用,向设备下发控制指令,如下图所示。
设备端
设备端会实时打印指令信息,如下所示。
topic /a16****/deviceSN1/user/cmd/down
message CMD,82923,ad322
物联网平台云端
登录物联网平台控制台,进入对应的实例,选择 。
可以查看指令消息流转的完整过程,如下图所示。
图中的日志已按产生时间标记顺序,依次为:
- 服务端调用下行API(图示中①)。
- 云端收到服务端的API调用请求后,推送消息到设备端(图示中②)。