美文网首页
flutter desktop event_bus 简单使用

flutter desktop event_bus 简单使用

作者: heliping_peter | 来源:发表于2022-01-22 10:25 被阅读0次

1.需求

最近使用flutter desktop,开发一个mqtt的桌面工具。

mqtt的发送没有问题,但是订阅的实现有点麻烦。
订阅需要listen监听到消息后,返回给页面,页面刷新收到的消息数据,在页面展示出来。
网上查找,最好实现的方式是event_bus,用起来还真不错。

2.实现

  • 先单独实现个eventbus
import 'package:event_bus/event_bus.dart';

class rmsgdata {
  late final String data;
  
  rmsgdata(this.data);
}

EventBus eventBus = EventBus();
  • UI页面部分订阅topic后,开始监听eventbus
btnsubscribeMsg(context) async {
    mcc = MqttClient(clientid!);
    mc = await mcc.msgSubscribe(topicname);
    showMaterialDialogSingle(context, "订阅成功");
    eventBus.on<rmsgdata>().listen((event) {
      if (!mounted) return;
      setState(() {
        backMsgList!.add(event.data);
      });
    });
  }
  • 发送部分,mqtt监听到消息后,发送eventbus
void onReceivedHandle(client, topic, payload) {
  print("我是处理函数");
  serverMqttSend(client, topic, "success");
  eventBus.fire(rmsgdata(payload));
}

完成了前端页面的刷新。

相关文章

网友评论

      本文标题:flutter desktop event_bus 简单使用

      本文链接:https://www.haomeiwen.com/subject/fujuhrtx.html