news 2026/6/20 9:10:36

Nodejs订阅nats主题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Nodejs订阅nats主题

我来帮您了解 Node.js 中订阅 NATS 主题的相关信息,包括基本概念、实现方法和示例代码。
我来为您详细讲解 Node.js 中订阅 NATS 主题的相关知识,包括基础用法和实际示例。
安装 NATS 客户端
npm install nats

基础订阅示例
const { connect, StringCodec } = require('nats');

(async () => {
// 连接到 NATS 服务器
const nc = await connect({ servers: "nats://localhost:4222" });
const sc = StringCodec();

// 订阅主题
const sub = nc.subscribe("updates");

// 使用异步迭代器接收消息
(async () => {
for await (const msg of sub) {
console.log(`收到消息: ${sc.decode(msg.data)}`);
}
})();

console.log("订阅者已启动,等待消息...");
})();

通配符订阅
// 订阅所有以 'user.' 开头的主题
const sub1 = nc.subscribe("user.*");

// 订阅所有以 'order.' 开头的主题及其子主题
const sub2 = nc.subscribe("order.>");

队列组订阅
// 多个订阅者可以加入同一个队列组实现负载均衡
const sub = nc.subscribe("task", { queue: "workers" });

完整示例
发布者 (publisher.js):
const { connect, StringCodec } = require('nats');

(async () => {
const nc = await connect({ servers: "nats://localhost:4222" });
const sc = StringCodec();

nc.publish("updates", sc.encode("Hello, NATS!"));
console.log("消息已发布");

await nc.drain();
})();

订阅者 (subscriber.js):
const { connect, StringCodec } = require('nats');

(async () => {
const nc = await connect({ servers: "nats://localhost:4222" });
const sc = StringCodec();

const sub = nc.subscribe("updates");

(async () => {
for await (const msg of sub) {
console.log(`收到: ${sc.decode(msg.data)}`);
}
})();

console.log("订阅者监听中...");
})();

运行步骤
1. 启动 NATS 服务器:
nats-server
# 或使用 Docker
docker run -d -p 4222:4222 nats

1. 运行订阅者:
node subscriber.js

1. 运行发布者:
node publisher.js

高级特性
- 异步迭代器:推荐使用 for await...of 循环处理消息
- 通配符:支持 *(匹配单个 token)和 >(匹配多个 token)
- 队列组:实现负载均衡的消息消费
- 连接管理:支持自动重连和连接状态监控
NATS 是一个高性能、轻量级的消息系统,非常适合微服务架构和分布式系统。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 14:40:03

如何用GPT-SoVITS克隆名人声音?法律与技术双视角

如何用 GPT-SoVITS 克隆名人声音?法律与技术双视角 在短视频、虚拟偶像和AI主播日益盛行的今天,一个令人惊叹又略带不安的现象正在发生:你听到的“马云谈创业”、“科比鼓励青少年”,可能根本不是他们本人说的——而是由几段公开演…

作者头像 李华
网站建设 2026/6/15 20:23:12

浏览器新标签页定制终极指南:3步打造个性化上网体验

浏览器新标签页定制终极指南:3步打造个性化上网体验 【免费下载链接】NewTab-Redirect NewTab Redirect! is an extension for Google Chrome which allows the user to replace the page displayed when creating a new tab. 项目地址: https://gitcode.com/gh_m…

作者头像 李华
网站建设 2026/6/15 18:47:49

Postman便携版完整使用指南:免安装API测试终极解决方案

Postman便携版完整使用指南:免安装API测试终极解决方案 【免费下载链接】postman-portable 🚀 Postman portable for Windows 项目地址: https://gitcode.com/gh_mirrors/po/postman-portable 还在为复杂的API测试工具安装流程而头疼吗&#xff1…

作者头像 李华
网站建设 2026/6/12 2:43:34

【开源飞控PX4架构】

开源飞控PX4架构■ 开源链接■■■■■■■■ 开源链接 开源代码PX4/PX4-AutopilotPublic 获取代码:git clone https://github.com/PX4/PX4-Autopilot.git docs.PX4 ■ ■ ■ ■ ■ ■ ■

作者头像 李华
网站建设 2026/6/14 21:18:54

Windows文件完整性终极验证指南:HashCheck快速上手教程

在日常使用电脑的过程中,你是否曾经担心下载的软件是否完整?备份的文件是否准确?通过网络传输的重要文档是否被篡改?这些问题都可以通过文件完整性验证工具来解决。今天我们将深入了解一款专为Windows系统设计的强大工具——HashC…

作者头像 李华
网站建设 2026/6/10 5:30:59

GPT-SoVITS在智能客服系统中的集成应用

GPT-SoVITS在智能客服系统中的集成应用 在今天的智能服务场景中,用户对“机器语音”的容忍度正变得越来越低。当电话那头传来千篇一律、机械生硬的合成音时,客户往往第一反应就是挂断——这不仅是体验问题,更是企业流失潜在价值的隐性成本。如…

作者头像 李华