103style/mqtt_demo

如何获取接收到的消息呢

Closed this issue · 3 comments

我看消息获取放到了回调_topicCallBackMap中,但是这个是私有的,怎么能把这个获取到的值做setState呢?

不是太明白你的意思,
_topicCallBackMap 是用来记录每个 topic 的回调的,
在订阅时添加,解除订阅的移除。

setState 是指 改变对应 topiccallback 的状态 ?
如果是的话 可以在传入端操作。
或者 为 _topicCallBackMap 添加 get 方法。

就是我订阅一个主题,我怎么获取到这个主题下的消息呢?

传进来的 IMqttCallBack 回调里面 onResponse 就是 服务端返回的消息。

以下是示例:

class Test  implements IMqttCallBack {
  test() {
    MqttUtils.getInstance().subscribe(topic, callBack: this);
  }
  @override
  void onResponse(String topic, String data) {
     //todo
  }

dart 不支持匿名内部类, 所以你要自己创建一个实现 IMqttCallBack接口的类。
这个只是Demo,你可以自己再改下。