news 2026/5/12 6:03:31

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/5/11 20:27:51

text2vec-base-chinese中文语义向量化终极入门指南

还在为中文文本理解发愁吗?text2vec-base-chinese让计算机真正"读懂"中文!这个强大的语义向量化工具能够将任意中文句子转换为768维的语义向量,为您的AI应用提供智能化支撑。 【免费下载链接】text2vec-base-chinese 项目地址: …

作者头像 李华
网站建设 2026/5/10 12:25:23

ModernFlyouts终极指南:如何彻底改造Windows系统提示界面?

你是否曾经觉得Windows的音量控制、亮度调节这些系统提示界面太过陈旧,与现代操作系统的设计风格不相协调?每次调节设置时弹出的那些过时界面,是否让你感到审美疲劳? 【免费下载链接】ModernFlyouts 项目地址: https://gitcode…

作者头像 李华
网站建设 2026/5/9 17:30:06

13、分布式构建与代码质量工具安装配置指南

分布式构建与代码质量工具安装配置指南 在软件开发过程中,分布式构建和代码质量检查是非常重要的环节。本文将详细介绍如何安装和配置 Docker、Jenkins 相关插件,以及如何安装和配置 SonarQube 进行代码质量分析。 1. Docker 安装 Docker 是一种轻量级的容器化技术,能够帮…

作者头像 李华
网站建设 2026/5/11 21:27:20

GPT-SoVITS语音合成在语音导航中的应用

GPT-SoVITS语音合成在语音导航中的应用在一辆行驶中的智能汽车里,导航系统用你自己的声音提醒:“前方两公里进入高速,请靠右行驶。”这不是科幻电影的桥段,而是基于GPT-SoVITS等新一代语音克隆技术正在逐步实现的真实场景。传统TT…

作者头像 李华
网站建设 2026/5/9 12:40:57

斯坦福Doggo:开源四足机器人如何实现破纪录的跳跃能力?

斯坦福Doggo:开源四足机器人如何实现破纪录的跳跃能力? 【免费下载链接】StanfordDoggoProject 项目地址: https://gitcode.com/gh_mirrors/st/StanfordDoggoProject 在机器人研究领域,四足机器人正以前所未有的速度发展,…

作者头像 李华
网站建设 2026/5/9 19:43:10

ZLUDA终极指南:在AMD显卡上无缝运行CUDA应用

ZLUDA终极指南:在AMD显卡上无缝运行CUDA应用 【免费下载链接】ZLUDA CUDA on AMD GPUs 项目地址: https://gitcode.com/gh_mirrors/zlu/ZLUDA 想要在AMD显卡上运行原本只能使用NVIDIA GPU的CUDA应用程序吗?ZLUDA项目为您提供了一个革命性的解决方…

作者头像 李华