# global_event_bus
**Repository Path**: pedro-labs/global_event_bus
## Basic Information
- **Project Name**: global_event_bus
- **Description**: 一个高性能、类型安全的 Flutter 全局事件分发系统,用于在应用程序的不同模块之间进行解耦通信。采用观察者模式和流式处理架构,支持事件优先级、批量处理、延迟发送、统计监控等高级功能。
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-08-19
- **Last Updated**: 2025-11-05
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 🚀 Global Event Bus - 全局事件总线
[](https://pub.dev/packages/global_event_bus)
[](https://opensource.org/licenses/MIT)
一个高性能、类型安全的 Flutter 全局事件分发系统,用于在应用程序的不同模块之间进行解耦通信。采用观察者模式和流式处理架构,支持事件优先级、批量处理、延迟发送、统计监控等高级功能。
## ✨ 核心特性
### 🔒 类型安全
- 基于泛型的类型安全事件系统
- 编译时类型检查,避免运行时错误
- 自动类型推断,提升开发体验
### ⚡ 高性能
- 基于 Dart Stream 的高效事件分发
- 支持批量处理模式,优化高频事件场景
- 内置事件统计和性能监控
### 🎯 事件优先级
- 四级优先级系统:critical、high、normal、low
- 高优先级事件优先处理
- 适用于不同业务场景的事件分级
### 📊 完善的日志系统
- 多级别日志配置(debug、info、warning、error、none)
- 可配置的日志输出格式
- 支持自定义日志处理器
- 事件类型和监听器过滤
### 🔧 灵活的监听方式
- 类型监听:只监听特定类型的事件
- 一次性监听:监听一次后自动移除
- 多类型监听:同时监听多种事件类型
- 延迟发送:支持延迟指定时间后发送事件
### 📈 统计监控
- 实时事件统计
- 发送/接收计数
- 事件类型分布统计
- 性能监控数据
## 🏗️ 核心架构
```plantext
┌───────────────────────────────────────┐
│ Global Event Bus │
├───────────────────────────────────────┤
│ GlobalEventManager (单例事件管理器) │
│ ├── 事件发送与分发 │
│ ├── 监听器管理 │
│ ├── 批量处理 │
│ └── 统计监控 │
├───────────────────────────────────────┤
│ BaseGlobalEvent (事件基类) │
│ ├── 事件类型标识 │
│ ├── 时间戳 │
│ ├── 优先级 │
│ └── 元数据 │
├───────────────────────────────────────┤
│ GlobalEvent(泛型事件类) │
│ └── 类型安全的数据传递 │
├───────────────────────────────────────┤
│ GlobalEventLogger (日志系统) │
│ ├── 多级别日志 │
│ ├── 可配置输出格式 │
│ └── 自定义处理器 │
└───────────────────────────────────────┘
```
## 📦 安装
在 `pubspec.yaml` 文件中添加依赖:
```yaml
dependencies:
global_event_bus:
```
然后运行:
```zsh
flutter pub get
```
## 🚀 快速开始
### 1. 导入包
```dart
import 'package:global_event_bus/global_event_bus.dart';
```
### 2. 配置日志(可选)
```dart
void main() {
// 配置全局事件总线日志
globalEventBus.configureLogging(
const GlobalEventLogConfig(
level: EventLogLevel.debug,
showEventData: true,
showEventId: true,
showListenerInfo: true,
),
);
runApp(MyApp());
}
```
### 3. 发送事件
```dart
// 发送简单事件
globalEventBus.sendEvent(
type: 'user_message',
data: 'Hello, World!',
);
// 发送带优先级的事件
globalEventBus.sendEvent