jetlinks / jetlinks-community

JetLinks 基于Java8,Spring Boot 2.x ,WebFlux,Netty,Vert.x,Reactor等开发, 是一个全响应式的企业级物联网平台。支持统一物模型管理,多种设备,多种厂家,统一管理。统一设备连接管理,多协议适配(TCP,MQTT,UDP,CoAP,HTTP等),屏蔽网络编程复杂性,灵活接入不同厂家不同协议等设备。实时数据处理,设备告警,消息通知,数据转发。地理位置,数据可视化等。能帮助你快速建立物联网相关业务系统。
https://www.jetlinks.cn/
Apache License 2.0
5.2k stars 1.62k forks source link

使用Mqtt 读取设备属性, 总是超时 #498

Open pengpengno opened 3 months ago

pengpengno commented 3 months ago

已查阅了 文档, 文档中说是10s内 未应答即超时,可是实际情况 在10s 内 回复也还是超时, 报文如下

下行读取报文

qos0 /1236859833832701953/tm/properties/read
messageId: 0
dup: false
retain: false
will: false

{"headers":{"deviceName":"tm","productId":"1236859833832701953","traceparent":"00-a2e9b6c0c798ce87cc7d69885dd6c523-b4faf5c8c6d26e92-01"},"messageId":"1780905542328766465","deviceId":"tm","timestamp":1713435943573,"properties":["temperature"],"messageType":"READ_PROPERTY"}

上行 上传属性报文

qos0  /1236859833832701953/tm/properties/read/reply
messageId: -1
dup: false
retain: false
will: false

{
 "timestamp":1713434585865,
 "messageId":"1780905542328766465",
 "properties":{"temperature":"50"},
 "deviceId":"tm",
 "success":true
}

这里可以看书 上下行报文 messageId 相同的 而且 操作确认是在10s 应答完成的, 只是没有更改 timestamp 值 为回复时间戳(有些麻烦)

如下是系统内的截图 下行 读取报文 image

上行报文 image

图中可以看到是相差6s 的, 不清楚超时的缘由, 希望社区能够提供帮助 ,感谢!

zhou-hao commented 3 months ago

解码的结果看看呢。

pengpengno commented 3 months ago

解码的结果是这样的 image

zhou-hao commented 3 months ago

解码结果似乎不对。设备日志里有回复的日志没?

pengpengno commented 3 months ago

设备里面没有回复的日志 image

我想了下 可能是这个地方和 演示文档有出入, 文档上选中jar 类型上传,会有个 类名 ,我目前使用版本上没有

image

我使用的版本是docker 2.2.0-SNAPSHOT 的 image

zhou-hao commented 3 months ago

是使用的最新的官方协议么? https://github.com/jetlinks/jetlinks-official-protocol

pengpengno commented 3 months ago

嗯 没有手动打包,直接用的package目录下的 jar, 我重新上传看下

zhou-hao commented 3 months ago

有没有做修改

pengpengno commented 3 months ago

没有修改,直接使用的 这个文件 image