github.com/zly-app/zapp@v1.3.3/component/msgbus/readme.md (about) 1 2 # 消息总线组件 3 4 > 类似于发布订阅 5 6 ## 示例 7 8 ```go 9 package main 10 11 import ( 12 "sync" 13 14 "github.com/zly-app/zapp" 15 "github.com/zly-app/zapp/core" 16 "go.uber.org/zap" 17 ) 18 19 func main() { 20 app := zapp.NewApp("app1") 21 defer app.Exit() 22 23 c := app.GetComponent() 24 25 var wg sync.WaitGroup 26 wg.Add(4) 27 28 // 订阅 29 c.Subscribe("topic1", 1, func(ctx core.IMsgbusContext) error { 30 c.Info("Subscribe.topic1", zap.Any("msg", ctx.Msg())) 31 wg.Done() 32 return nil 33 }) 34 // 订阅 35 c.Subscribe("topic2", 1, func(ctx core.IMsgbusContext) error { 36 c.Info("Subscribe.topic2", zap.Any("msg", ctx.Msg())) 37 wg.Done() 38 return nil 39 }) 40 // 订阅 41 c.SubscribeGlobal(1, func(ctx core.IMsgbusContext) error { 42 c.Info("SubscribeGlobal", zap.Any("msg", ctx.Msg())) 43 wg.Done() 44 return nil 45 }) 46 47 c.Publish("topic1", 1) 48 c.Publish("topic2", 2) 49 50 wg.Wait() 51 } 52 ``` 53 54 ## 说明 55 56 + 创建订阅者会自动创建主题 57 + 发布消息时, 如果没有对应的订阅者, 则会被抛弃掉 58 + 订阅者不能收到历史消息.