Including a Reply Subject
{% tabs %} {% tab title=”Go” %}
{% endtab %}
{% tab title=”Java” %}
Connection nc = Nats.connect("nats://demo.nats.io:4222");
// Create a unique subject name
String uniqueReplyTo = NUID.nextGlobal();
// Listen for a single response
Subscription sub = nc.subscribe(uniqueReplyTo);
sub.unsubscribe(1);
// Send the request
nc.publish("time", uniqueReplyTo, null);
// Read the reply
Message msg = sub.nextMessage(Duration.ofSeconds(1));
System.out.println(new String(msg.getData(), StandardCharsets.UTF_8));
// Close the connection
nc.close();
{% tab title=”JavaScript” %}
{% endtab %}
{% tab title=”Python” %}
nc = NATS()
future = asyncio.Future()
async def sub(msg):
nonlocal future
future.set_result(msg)
await nc.connect(servers=["nats://demo.nats.io:4222"])
await nc.subscribe("time", cb=sub)
await nc.publish("time", b'', unique_reply_to)
# Use the response
msg = await asyncio.wait_for(future, 1)
print("Reply:", msg)
{% tab title=”Ruby” %}
{% endtab %}
{% tab title=”C” %}
natsConnection *conn = NULL;
natsStatus s = NATS_OK;
s = natsConnection_ConnectTo(&conn, NATS_DEFAULT_URL);
// Publish a message and provide a reply subject
if (s == NATS_OK)
s = natsConnection_PublishRequestString(conn, "request", "reply", "this is the request");
(...)
natsConnection_Destroy(conn);