English/中文
chsub 是一个轻量级的发布订阅(Pub/Sub)库,专为Go语言设计,用于在协程之间进行简单的消息广播。
go get github.com/bafflingbug/chsub@latestpackage main
import (
"fmt"
"log"
"github.com/bafflingbug/chsub"
)
func main() {
sub := chsub.NewSub()
publish, _ := sub.NewTopic("topic_name", chsub.WithLength(10))
subCh := make(chan any, 10)
_ = sub.Sub(
"topic_name", subCh, chsub.WithSubOnDrop(
func(a any) {
log.Printf("drop msg: %+v", a)
},
),
)
go func() {
for msg := range subCh {
fmt.Println("Received:", msg)
}
}()
_ = publish("Hello, World!")
}WithLength(maxLength int): 设置主题缓冲区的最大长度。
WithSubOnDrop(f func(any)): 设置消息丢弃时的回调函数。