nats-example/client.ts

45 lines
1 KiB
TypeScript
Raw Normal View History

2025-08-04 10:14:50 +02:00
import { connect } from "nats";
import readline from "readline";
const NATS_SERVER = process.env.NATS_SERVER || "nats://localhost:4222";
const nc = await connect({ servers: NATS_SERVER });
console.log(`Connected to NATS at ${NATS_SERVER}`);
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
// Handle Docker container signals gracefully
process.on("SIGINT", () => {
console.log("\nReceived SIGINT, closing connections...");
rl.close();
nc.close();
process.exit(0);
});
process.on("SIGTERM", () => {
console.log("\nReceived SIGTERM, closing connections...");
rl.close();
nc.close();
process.exit(0);
});
function askForMessage() {
rl.question("Enter a message (or 'quit' to exit): ", (message) => {
if (message.toLowerCase() === "quit" || message.toLowerCase() === "exit") {
console.log("Goodbye!\n");
rl.close();
nc.close();
process.exit(0);
}
nc.publish("test", message);
askForMessage();
});
}
askForMessage();