如何将 MessageEvents 的消息分配给 dart/flutter/redis 中的字符串变量

如何解决如何将 MessageEvents 的消息分配给 dart/flutter/redis 中的字符串变量

我使用 dartis 0.5.0 作为我的 redis 连接并从 pubsub 示例文件夹中复制了代码在这里

void main() async {
runApp(MyApp());


final broker =
  await redis.PubSub.connect<String,String>('redis://localhost:6379');
 print('connected');
 
ProcessSignal.sigint.watch().listen((_) async {
await broker.disconnect();
exit(0);});
    
 // Outputs the data received from the server.
  broker.stream.listen(print,onError: print,onDone: () => exit(0));

  broker.psubscribe(pattern: 'commands');
}

这是我的终端消息;

I/Flutter (26344):已连接

I/Flutter (26344): SubscriptionEvent: {command=psubscribe,channel=commands,channelCount=1}

I/Flutter (26344): MessageEvent: {channel=commands,message=7,pattern=commands}

代码有效,但我需要获取 MessageEvent' 消息并将其分配给字符串变量,我可能有几行代码但还没有成功。此外,它现在在主体内部进行测试和其他东西,但它将在项目中的一个有状态小部件中,所以我想写一个返回字符串的函数,然后我就可以在其他地方使用它,所以我希望我说清楚,如果你们能帮助我弄清楚这一点,我将不胜感激

解决方法

您对 broker.stream.listen 的第一个参数是每个事件的发送位置,在这种情况下,“打印”是尽职尽责地打印到终端。将其更改为您自己的方法调用以处理事件:

broker.stream.listen(callYourMethodHere,onError: print,onDone: () => exit(0));
,
broker.stream.listen((event){
  if(event is MessageEvent){

    print(event.message);
    if(event.message == '7'){
      Navigator.push(
          context,MaterialPageRoute(builder: (context) => Majors()));



    }
  }else{
    print(event);
  }
},onDone: () => exit(0));

这非常简单:) 就像我在问题中提到的我对 ascyn 编程非常陌生,这是答案,我希望它对其他人有用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?