news 2026/6/10 12:39:53

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 21:42:32

AutoHotkey v2转换器终极指南:快速实现脚本现代化升级

AutoHotkey v2转换器终极指南:快速实现脚本现代化升级 【免费下载链接】AHK-v2-script-converter AHK v1 -> v2 script converter WORK IN PROGRESS 项目地址: https://gitcode.com/gh_mirrors/ah/AHK-v2-script-converter AutoHotkey v2转换器是一款专为…

作者头像 李华
网站建设 2026/6/10 3:53:02

1、基于Jenkins的持续集成、交付与部署指南

基于Jenkins的持续集成、交付与部署指南 1. 持续集成概念基础 在软件开发领域,软件开发生命周期(SDLC)包含多个关键阶段: - 需求分析 :明确软件的功能和性能要求。 - 设计 :规划软件的架构和模块划分。 - 实现 :编写代码实现软件功能。 - 测试 :对软件进…

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

9、深入探索 Jenkins:从多分支管道到 Blue Ocean 及插件管理

深入探索 Jenkins:从多分支管道到 Blue Ocean 及插件管理 一、配置 Jenkins 多分支管道 配置 GitHub 仓库 完成相关操作后,点击页面底部的“OK”按钮。 滚动到“Branch Sources”部分,这里用于配置要使用的 GitHub 仓库。 点击“Add Source”按钮并选择“GitHub”,会出…

作者头像 李华
网站建设 2026/6/10 11:16:44

小批量试产PCB生产流程图解说明

小批量试产PCB生产全流程:从设计到出货的实战指南你有没有遇到过这样的情况?辛辛苦苦画完板子,信心满满地提交给工厂,结果几天后收到一封“工程问询单”(EQ),列出一堆问题:缺Gerber层…

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

ASMR下载器终极指南:轻松实现智能同步与批量下载

ASMR下载器终极指南:轻松实现智能同步与批量下载 【免费下载链接】asmr-downloader A tool for download asmr media from asmr.one(Thanks for the asmr.one) 项目地址: https://gitcode.com/gh_mirrors/as/asmr-downloader 想要高效管理ASMR资源&#xff1…

作者头像 李华
网站建设 2026/6/9 19:26:08

GPT-SoVITS情感语音合成可行性研究

GPT-SoVITS情感语音合成可行性研究 你有没有想过,只需一分钟录音,就能让AI用你的声音读出任何文字?甚至让它用中文语调说英文、模仿你生气或温柔的语气——这不再是科幻电影的情节。随着GPT-SoVITS这类少样本语音克隆系统的出现,个…

作者头像 李华