请问调用 aLiYun.publish()总会有2秒延迟是什么原因?

attachments-2018-11-KY8o9qUJ5bf95465e8877.pngattachments-2018-11-P93xYK5l5bf9546fd6b5c.png

模块:Luat S6

固件:Luat_v0030_8955_SSL

框架:LuatTask

信号强度20,通讯什么的都正常就是有延迟问题,每次发送都是固定的两秒延迟

。。。

接着调试发现是官方lib中接收任务阻塞了线程

attachments-2018-11-9WjVAnbP5bf97baa3245e.pngattachments-2018-11-QRIzSvsL5bf97be97c62e.png改小接收超时参数可以解决延时问题,但可能会影响信号差或长数据包的情况,所以现在问题变成了为什么在接收过程中调aLiYun.publish()可以立即发布消息,而通知其他线程调用aLiYun.publish()发布消息却会导致接收超时?

请问如下应用场景怎样避免延时问题:

    主线程:当模块接收到mqtt消息->根据消息数据通知外部设备执行动作【执行动作只需十几毫秒】

    子线程:当外部设备执行完动作上报情况->调aLiYun.publish()上报数据【外部设备状态需尽快上报,2秒延时太久了】


请先 登录 后评论

最佳答案 2018-11-26 22:38

可以把那个2000改成500,具体多小这个要自己测了

如果有空,你可以试着自己写一个更合理的。。。

请先 登录 后评论

其它 0 个回答

  • 0 关注
  • 0 收藏,2445 浏览
  • 提出于 2018-11-24 21:40

相似问题