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();