当前位置: 首页 > news >正文

flutter Stream 有哪两种订阅模式。

Flutter 中的 Stream 有两种订阅模式:

单订阅模式 (Single Subscription)​

  • 只能有一个订阅者(listen 只能调用一次),后续调用会抛出异常。
  • 数据仅在订阅后开始传递,适用于点对点通信场景(如文件读取流)。
  • 默认创建的 StreamController 是单订阅模式:
StreamController<String> controller = StreamController(); // 单订阅

广播模式 (Broadcast)​

  • 允许多个订阅者同时监听,数据会实时分发给所有订阅者。
  • 适用于发布-订阅场景(如全局事件总线)。
  • 通过 StreamController.broadcast() 或转换方法创建:
StreamController<String> controller = StreamController.broadcast(); // 广播
// 或转换现有流
Stream broadcastStream = singleStream.asBroadcastStream();

关键区别​:

  • 单订阅​:数据缓存到订阅时传递,类似“点对点”。
  • 广播​:数据实时广播,类似“群发消息”。

注意事项​:

  • 广播流需手动管理资源(如 cancel() 和 close()),避免内存泄漏。
  • 使用 isBroadcast 属性可检查当前流的模式。
http://www.dtcms.com/a/188046.html

相关文章:

  • 工作常用的git命令
  • Node.js中的洋葱模型
  • C++中的volatile有什么用?
  • PostgreSQL 恢复信息函数
  • flea-cache使用之Redis哨兵模式接入
  • ETL 数据集成平台与数据仓库的关系及 ETL 工具推荐
  • EDR与XDR如何选择适合您的网络安全解决方案
  • 爬虫请求频率应控制在多少合适?
  • 鸿蒙 核心与非核心装饰器
  • Node.js事件循环中的FIFO原则
  • [FA1C4] 博客链接
  • SQL语句,索引,视图,存储过程以及触发器
  • DeepSeek、B(不是百度)AT、科大讯飞靠什么坐上中国Ai牌桌?
  • 【C++】深入理解 unordered 容器、布隆过滤器与分布式一致性哈希
  • 激光打印机常见打印故障简单处理意见
  • 导出导入Excel文件(详解-基于EasyExcel)
  • Git基本操作命令
  • Java—— 双列集合 Map
  • 第一章:HTML基石·现实的骨架
  • 基于单应性矩阵变换的图像拼接融合
  • WebGIS 开发黑科技:解锁地理信息的新视界
  • vscode点击函数名/变量/文件名无法跳转
  • 【deekseek】P2P通信路由过程
  • 内核深入学习3——分析ARM32和ARM64体系架构下的Linux内存区域示意图与页表的建立流程
  • AUTOSAR图解==>AUTOSAR_TPS_ECUResourceTemplate
  • MySQL 主从复制与读写分离
  • CST软件对OPERACST软件联合仿真汽车无线充电站对人体的影响
  • 【网络编程】七、详解HTTP 搭建HTTP服务器
  • 快速排序、归并排序、计数排序
  • 论文解读:Drivestudio——OmniRe: Omni Urban Scene Reconstruction