美文网首页
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