携带回复 Subject

在发布消息时可选的回复字段(reply-to field)可让接收端回复此消息。回复主题通常被称为“收件箱”(inbox),大多数库可能提供生成唯一收件箱主题的方法。大多数库还通过单个调用支持请求-回复模式。例如,要向主题 time 发送一个请求,并且消息内容为空,你可以:

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

// Create a unique subject name for replies.
uniqueReplyTo := nats.NewInbox()

// Listen for a single response
sub, err := nc.SubscribeSync(uniqueReplyTo)
if err != nil {
    log.Fatal(err)
}

// Send the request.
// If processing is synchronous, use Request() which returns the response message.
if err := nc.PublishRequest("time", uniqueReplyTo, nil); err != nil {
    log.Fatal(err)
}

// Read the reply
msg, err := sub.NextMsg(time.Second)
if err != nil {
    log.Fatal(err)
}

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

最后更新于