通过http 推送信息的问题

环境信息

  • EMQX 版本:4.3.11
  • 操作系统及版本:Linux
  • 其他

问题描述

通过 POST /api/v4/mqtt/publish 进行mqtt 发送信息的时候,为什么有些设备不在线的时候,返回响应参数中code等于0 ,不应该返回客户端的响应码112吗(设备登录加了acl 和http 验证)


客户端显示的在线列表

响应回来的数据

配置文件及日志

这个接口中的clientid参数,是用来模拟设备信息的。也就是说,通过这个接口,能模仿出设备在发消息,clientid是消息的生产者。慎用线上的设备id,推荐的做法是写成

clientid = from_some_one_api_user

或者你就是想代替某个设备发消息,那就冒名它的clientID即可

我还是不太明白。我是根据官方文档上的批量消息发布接口,进行发送信息。我里面的接口参数就是指明发送给已订阅的设备。设备不在线应该按道理返回不在线的状态码,但是返回来的状态码等于0 。当什么时候,才能返回不在线的状态码

不是给某个设备发消息,是使用某个clientID作为消息来源,发布一条消息。

设备是否在线,并不会影响消息的发布,没有订阅者会将消息丢弃,MQTT的协议就是这种定义