diff options
| author | 2026-03-22 16:13:20 +0300 | |
|---|---|---|
| committer | 2026-03-22 16:13:20 +0300 | |
| commit | 485f49c2323a95297c8b5ae5f44320825d66ae82 (patch) | |
| tree | 3db739918a0a19387f8e85fb30cc7d2fcf31c669 /README.md | |
| parent | v1.0.1 (diff) | |
| download | eventbus-485f49c2323a95297c8b5ae5f44320825d66ae82.tar.gz eventbus-485f49c2323a95297c8b5ae5f44320825d66ae82.tar.bz2 eventbus-485f49c2323a95297c8b5ae5f44320825d66ae82.tar.xz eventbus-485f49c2323a95297c8b5ae5f44320825d66ae82.zip | |
Diffstat (limited to '')
| -rw-r--r-- | README.md | 50 |
1 files changed, 18 insertions, 32 deletions
@@ -59,16 +59,13 @@ func main() { ) // Подписываемся на конкретное событие - ch1 := bus.Subscribe("user.login") - defer bus.Unsubscribe(ch1) + ch1 := bus.Subscribe(context.Background(), "user.login") // Подписываемся на группу событий с wildcard - ch2 := bus.Subscribe("user.*") - defer bus.Unsubscribe(ch2) + ch2 := bus.Subscribe(context.Background(), "user.*") // Подписываемся на группу событий с кастомным wildcard - ch3 := customBus.Subscribe("/user/#") - defer customBus.Unsubscribe(ch3) + ch3 := customBus.Subscribe(context.Background(), "/user/#") // Запускаем горутины для обработки событий go func() { @@ -90,9 +87,9 @@ func main() { }() // Отправляем события - bus.Fire(MyEvent{name: "user.login", data: "user123"}) - bus.Fire(MyEvent{name: "user.logout", data: "user123"}) - customBus.Fire(MyEvent{name: "/user/login", data: "user123"}) + bus.Publish(MyEvent{name: "user.login", data: "user123"}) + bus.Publish(MyEvent{name: "user.logout", data: "user123"}) + customBus.Publish(MyEvent{name: "/user/login", data: "user123"}) // Ждем немного для обработки событий time.Sleep(100 * time.Millisecond) @@ -111,20 +108,16 @@ func main() { - `Capacity` - задает начальную емкость для узлов дерева подписчиков (по умолчанию 32) -### `func (b *bus) Subscribe(path string) Listener` +### `func (b *bus) Subscribe(ctx context.Context, path string) Listener` Подписывается на событие по указанному пути. Возвращает канал-подписчик для получения событий. -### `func (b *bus) Unsubscribe(l Listener)` - -Отписывается от события и закрывает канал подписчика. - ### `func (b *bus) Close()` Закрывает шину событий и все каналы подписчиков. -### `func (b *bus) Fire(ev Event)` +### `func (b *bus) Publish(ev Event)` Отправляет событие всем подписчикам, которые подписаны на соответствующий путь события. @@ -204,16 +197,13 @@ func main() { ) // Subscribe to specific event - ch1 := bus.Subscribe("user.login") - defer bus.Unsubscribe(ch1) + ch1 := bus.Subscribe(context.Background(), "user.login") // Subscribe to event group with wildcard - ch2 := bus.Subscribe("user.*") - defer bus.Unsubscribe(ch2) + ch2 := bus.Subscribe(context.Background(), "user.*") // Subscribe to event group with custom wildcard - ch3 := customBus.Subscribe("/user/#") - defer customBus.Unsubscribe(ch3) + ch3 := customBus.Subscribe(context.Background(), "/user/#") // Start goroutines for event handling go func() { @@ -234,10 +224,10 @@ func main() { } }() - // Fire events - bus.Fire(MyEvent{name: "user.login", data: "user123"}) - bus.Fire(MyEvent{name: "user.logout", data: "user123"}) - customBus.Fire(MyEvent{name: "/user/login", data: "user123"}) + // Publish events + bus.Publish(MyEvent{name: "user.login", data: "user123"}) + bus.Publish(MyEvent{name: "user.logout", data: "user123"}) + customBus.Publish(MyEvent{name: "/user/login", data: "user123"}) // Wait a bit for event processing time.Sleep(100 * time.Millisecond) @@ -254,22 +244,18 @@ Creates a new event bus with optional settings. Supports the following options: - `Wildcard` - sets the wildcard character for subscriptions (default "\*") - `Capacity` - sets the initial capacity for listeners trie (default 32) -### `func (b *bus) Subscribe(path string) Listener` +### `func (b *bus) Subscribe(ctx context.Context, path string) Listener` Subscribes to an event at the specified path. Returns a listener channel for receiving events. -### `func (b *bus) Unsubscribe(l Listener)` - -Unsubscribes from an event and closes the listener channel. - ### `func (b *bus) Close()` Closes the event bus and all listener channels. -### `func (b *bus) Fire(ev Event)` +### `func (b *bus) Publish(ev Event)` -Fires an event to all subscribers who are subscribed to the corresponding event +Publishs an event to all subscribers who are subscribed to the corresponding event path. ## License |
