Including a Reply Subject

    {% tabs %} {% tab title=”Go” %}

    {% endtab %}

    {% tab title=”Java” %}

    1. Connection nc = Nats.connect("nats://demo.nats.io:4222");
    2. // Create a unique subject name
    3. String uniqueReplyTo = NUID.nextGlobal();
    4. // Listen for a single response
    5. Subscription sub = nc.subscribe(uniqueReplyTo);
    6. sub.unsubscribe(1);
    7. // Send the request
    8. nc.publish("time", uniqueReplyTo, null);
    9. // Read the reply
    10. Message msg = sub.nextMessage(Duration.ofSeconds(1));
    11. System.out.println(new String(msg.getData(), StandardCharsets.UTF_8));
    12. // Close the connection
    13. nc.close();

    {% tab title=”JavaScript” %}

    {% endtab %}

    {% tab title=”Python” %}

    1. nc = NATS()
    2. future = asyncio.Future()
    3. async def sub(msg):
    4. nonlocal future
    5. future.set_result(msg)
    6. await nc.connect(servers=["nats://demo.nats.io:4222"])
    7. await nc.subscribe("time", cb=sub)
    8. await nc.publish("time", b'', unique_reply_to)
    9. # Use the response
    10. msg = await asyncio.wait_for(future, 1)
    11. print("Reply:", msg)

    {% tab title=”Ruby” %}

    {% endtab %}

    {% tab title=”C” %}

    1. natsConnection *conn = NULL;
    2. natsStatus s = NATS_OK;
    3. s = natsConnection_ConnectTo(&conn, NATS_DEFAULT_URL);
    4. // Publish a message and provide a reply subject
    5. if (s == NATS_OK)
    6. s = natsConnection_PublishRequestString(conn, "request", "reply", "this is the request");
    7. (...)
    8. natsConnection_Destroy(conn);