同步订阅

同步订阅要求应用程序等待消息。设置、使用这种类型的订阅都很简单,但如果预期有多个消息,则需要应用程序自己处理循环问题。在只期望单个消息的情况下,同步订阅有时更容易管理,具体取决于所使用的语言。

例如,要订阅 updates 主题并接收一条消息,可以这样做:

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

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

// Wait for a message
msg, err := sub.NextMsg(10 * time.Second)
if err != nil {
    log.Fatal(err)
}

// Use the response
log.Printf("Reply: %s", msg.Data)

最后更新于