取消订阅

客户端库提供了取消先前的订阅请求的方法。

此过程需要与服务器进行交互,因此对于异步订阅,在取消订阅由库处理时可能会有一小段时间窗口,期间可能已经有消息到达。开发者们可以忽略这种边缘情况,因为客户端库将清理任何未处理的消息,并通知服务器该订阅已不再使用。

nc, err := nats.Connect("demo.nats.io")
if err != nil {
    log.Fatal(err)
}
defer nc.Close()

// Sync Subscription
sub, err := nc.SubscribeSync("updates")
if err != nil {
    log.Fatal(err)
}
if err := sub.Unsubscribe(); err != nil {
    log.Fatal(err)
}

// Async Subscription
sub, err = nc.Subscribe("updates", func(_ *nats.Msg) {})
if err != nil {
    log.Fatal(err)
}
if err := sub.Unsubscribe(); err != nil {
    log.Fatal(err)
}

最后更新于