整体联调
更新时间:
复制为 MD 格式
完成设备端和服务端业务开发后,启动服务端程序与物联网平台建立连接,然后启动设备端模拟脚本,模拟上报数据进行联调。
启动服务端程序
在IntelliJ IDEA,运行已完成开发的AmqpClient.java程序。
说明 本示例Demo代码中,添加了结束程序的代码(Thread.sleep(60 * 1000);),即程序启动成功,运行一分钟后会结束。实际场景中,您可根据需要自行设置运行时间。
15:11:29.075 [FailoverProvider: async work thread] DEBUG org.apache.qpid.jms.provider.failover.FailoverProvider - Executing Failover Task: create ...
configuredURI = failover:(amqps://xxx.amqp.iothub.aliyuncs.com:5671?amqp.idleTimeout=80000)?failover.reconnectDelay=30, connectedURI = null } (1)
15:11:29.104 [AmqpProvider :(4):[amqps://xxx.amqp.iothub.aliyuncs.com:5671]] DEBUG org.apache.qpid.jms.provider.amqp.builders.AmqpConnectionBuilder - AmqpConnection {
ID:xxx } is now open:
15:11:29.105 [AmqpProvider :(4):[amqps://xxx.amqp.iothub.aliyuncs.com:5671]] INFO org.apache.qpid.jms.JmsConnection - Connection ID:xxx connected to server:
amqps://xxx.amqp.iothub.aliyuncs.com:5671
15:11:29.105 [QpidJMS Connection Executor: ID:xxx] INFO com.aliyun.iotx.demo.AmqpClient - onConnectionEstablished, remoteUri:amqps://xxx.amqp.iothub.aliyuncs.com:5671?amqp
.idleTimeout=80000
15:11:29.105 [main] DEBUG org.apache.qpid.jms.provider.failover.FailoverProvider - Executing Failover Task: create -> JmsSessionInfo { ID:xxx } (2)
15:11:29.117 [main] DEBUG org.apache.qpid.jms.provider.failover.FailoverProvider - Executing Failover Task: create -> JmsConsumerInfo { ID:xxx, destination = default } (3)
15:11:29.149 [main] DEBUG org.apache.qpid.jms.provider.failover.FailoverProvider - Executing Failover Task: start -> JmsConsumerInfo: { ID:xxx, destination = default } (4)
15:11:29.151 [main] INFO com.aliyun.iotx.demo.AmqpClient - amqp demo is started successfully, and will exit after 60s
启动设备并上报数据
在CMD窗口,使用cd命令找到设备端的iot_device.js文件所在路径,然后输入如下命令,运行iot_device.js代码,启动设备。
node iot_device.js
手持红外体温计设备向物联网平台上报温度数据:
- 消息Topic:
/a1*********/hz9527/user/data。 - 消息内容:
{"temperature":24}。
查看云端数据流转
登录物联网平台控制台,进入对应的实例,在左侧导航栏选择。
您可以在云端运行日志页签,查看设备上行消息的消息详情,包括Topic和Payload,跟踪上行消息的流转过程。
日志已按产生时间标记顺序,依次为:
- 设备上报消息。
- 消息从规则引擎流转到AMQP。
- AMQP推送消息到服务端。
- 服务端响应消息ACK。
查看服务端消费消息
服务端实时打印从物联网平台获取到的消息数据。报文中包含设备原始报文完整内容。
15:59:17.072 [pool-1-thread-2] INFO com.aliyun.iotx.demo.AmqpClient - receive message,
topic = /gxxx/device1/user/data,
messageId = xxx,
content = {"area":"华东","province":"浙江","city":"杭州","district":"滨江","temperature":23,"time":"2022-08-18 15:59:17","deviceName":"device1"}
15:59:17.072 [AmqpProvider :(4):[amqps://xxx.amqp.iothub.aliyuncs.com:5671]] DEBUG org.apache.qpid.jms.provider.amqp.AmqpConsumer - Accepted Ack of message: JmsInboundMessageDispatch { sequence = 20,
messageId = xxx, consumerId = ID:xxx }
在物联网平台控制台对应实例下的左侧导航栏,选择,单击消费组列表页签,然后单击消费组手持体温计数据消费组对应的查看,进入消费组详情页面,可看到消息处理速率、堆积量、最后一条消息处理时间,以及服务端(即在线客户端)的信息。
该文章对您有帮助吗?