请求-回复语义
nc, err := nats.Connect("demo.nats.io")
if err != nil {
log.Fatal(err)
}
defer nc.Close()
// 发送请求
msg, err := nc.Request("time", nil, time.Second)
if err != nil {
log.Fatal(err)
}
// 使用响应
log.Printf("Reply: %s", msg.Data)
// 关闭连接
nc.Close()Connection nc = Nats.connect("nats://demo.nats.io:4222");
// 设置一个监听器来处理 "time" 请求
Dispatcher d = nc.createDispatcher(msg -> {
System.out.println("Received time request");
nc.publish(msg.getReplyTo(), ("" + System.currentTimeMillis()).getBytes());
});
d.subscribe("time");
// 向 "time" 主题发送请求,并等待 1 秒钟以获取响应
Message msg = nc.request("time", null, Duration.ofSeconds(1));
// 查看响应
long time = Long.parseLong(new String(msg.getData()));
System.out.println(new Date(time));
nc.close();散射-聚集
最后更新于