奈何col
发表于 2021-1-28 16:53
Crawford 发表于 2021-1-28 14:59
1.我用MQTT.fx调试的时候,连接之后session present返回了false,虽然连接了,但是并没有接收到关于get sta ...
mqtt客户端均可,没有限制
Crawford
发表于 2021-1-28 17:03
在连接之后,打印出来的日志是这样的,app上的设备还是显示离线,按照前面您回复里所说的,是因为没有回复关于getstate的问题吗?
2021-01-28 16:55:18,279INFO --- BrokerConnectorController : onConnect
2021-01-28 16:55:18,280INFO --- ScriptsController : Clear console.
2021-01-28 16:55:18,283INFO --- MqttFX ClientModel : MqttClient with ID 41A7xxxxxxxZNS2AP7AB assigned.
2021-01-28 16:55:18,354INFO --- MqttFX ClientModel : session present: false
这种状态下发布和订阅设备自身,发布成功后没有收到订阅信息
Crawford
发表于 2021-1-28 17:04
奈何col 发表于 2021-1-28 16:53
mqtt客户端均可,没有限制
在连接之后,打印出来的日志是这样的,app上的设备还是显示离线,按照前面您回复里所说的,是因为没有回复关于getstate的问题吗?
2021-01-28 16:55:18,279INFO --- BrokerConnectorController : onConnect
2021-01-28 16:55:18,280INFO --- ScriptsController : Clear console.
2021-01-28 16:55:18,283INFO --- MqttFX ClientModel : MqttClient with ID 41A7xxxxxxxZNS2AP7AB assigned.
2021-01-28 16:55:18,354INFO --- MqttFX ClientModel : session present: false
这种状态下发布和订阅设备自身,发布成功后没有收到订阅信息
Crawford
发表于 2021-1-28 18:03
已解决。
奈何col
发表于 2021-1-28 18:41
Crawford 发表于 2021-1-28 17:04
在连接之后,打印出来的日志是这样的,app上的设备还是显示离线,按照前面您回复里所说的,是因为没有回 ...
https://diandeng.tech/doc/api-mqtt
1.使用点灯broker
2.toDevice设为app deviceName
小菜鸟CZY
发表于 2021-3-13 14:40
请问下我用的手机热点是不可以吗
4560335
发表于 2021-3-16 18:00
Crawford 发表于 2021-1-28 14:59
1.我用MQTT.fx调试的时候,连接之后session present返回了false,虽然连接了,但是并没有接收到关于get sta ...
折腾了好几天,突然发现原来是这样订阅和发布消息的,这个和技新教程里说的貌似不大一样啊:Q
奈何col
发表于 2021-3-16 19:08
4560335 发表于 2021-3-16 18:00
折腾了好几天,突然发现原来是这样订阅和发布消息的,这个和技新教程里说的貌似不大一样啊
不太清除技新是什么,各家broker都有自己定义的部分,多少有所不同,关于点灯broker接入,请看我们的文档:https://diandeng.tech/doc/api-mqtt
4560335
发表于 2021-3-16 20:46
本帖最后由 4560335 于 2021-3-16 20:58 编辑
奈何col 发表于 2021-3-16 19:08
不太清除技新是什么,各家broker都有自己定义的部分,多少有所不同,关于点灯broker接入,请看我们的文档 ...
虽然通过下载你们Arduino实例程序改了三行数据直接就成功了,但是通过串口打印数据可以发现,文档并未对通信协议完全公开,MQTT客户端无法模拟硬件设备与APP进行通信,希望公开捂手协议,这样可以使其它MCU或者计算机应用程序通过以太网与APP进行通信。
关于设备显示离线文档内容:
blinker App在 App打开时、进入设备页面时、在设备页面中每隔一定时间 会向设备发送心跳请求,内容为**{"get":"state"}**。
设备收到请求后,会返回 **{"state":"online"}**,app接收到这个返回,即会显示设备在线。
但是从串口打印数据可以发现,硬件收到{"get":"state"}后,返回的数据不仅仅只有{"state":"online"},还有:"timer":"000"、"version":"0.1.0"
parse data: {"get":"state"}
defined BLINKER_ARDUINOJSON
autoManager begin: 0 0
autoFormatData key: state, json: "state":"online"
new.
timer codes: 000
autoFormatData key: timer, json: "timer":"000"
add.
autoFormatData key: version, json: "version":"0.1.0"
add.
print: {"state":"online","timer":"000","version":"0.1.0"}
Proto print...
Freeheap: 35000
isJson: {"data":{"state":"online","timer":"000","version":"0.1.0"},"fromDevice":"10B79FA0YSGCHQKAE0B3KV9R","toDevice":"edde88f5828711eb89785254","deviceType":"OwnApp"}
MQTT Publish...
Freeheap: 35000
{"data":{"state":"online","timer":"000","version":"0.1.0"},"fromDevice":"10B79FA0YSGCHQKAE0B3KV9R","toDevice":"edde88f5828711eb89785254","deviceType":"OwnApp"}
...OK!
奈何col
发表于 2021-3-16 22:18
4560335 发表于 2021-3-16 20:46
虽然通过下载你们Arduino实例程序改了三行数据直接就成功了,但是通过串口打印数据可以发现,文档并未对通 ...
相关内容文档中都有,如果您说的是和组件的交互,请看:https://diandeng.tech/doc/cmd