Node.js SDK 使用

最近更新时间:2025-11-20 18:07:23

我的收藏

操作场景

本文以调用 Node.js SDK 为例介绍通过开源 SDK 实现消息收发的操作过程,帮助您更好地理解消息收发的完整过程。

前提条件

已参考 SDK 概述,获取相关的客户端连接参数
安装好 Node.js 开发环境,例如 npm 等。

操作步骤

步骤1:安装 Node.js SDK 到项目中

1. 安装 SDK:
npm i rocketmq-client-nodejs
2. 安装完成后,项目的 package.json 文件中将会有对应的依赖。

步骤2:生产消息

import { Producer } from 'rocketmq-client-nodejs';

const producer = new Producer({
endpoints: 'rmq-xxx.rocketmq.gz.qcloud.tencenttdmq.com:8080', // 腾讯云接入点
sessionCredentials: {
accessKey: 'yourAccessKey', // ak
accessSecret: 'yourSecretKey', // sk
}
});
await producer.startup();

const receipt = await producer.send({
topic: 'TopicTest', // 在管控创建的 topic
body: Buffer.from(JSON.stringify({
hello: 'rocketmq-client-nodejs world',
now: Date(),
})),
});
console.log(receipt);
参数
说明
accessKey
角色密钥,在控制台的集群权限页面 AccessKey 列复制。

accessSecret
角色名称,在控制台的集群权限页面 SecretKey 列复制。
endpoints
集群接入地址,在控制台集群基本信息页面的接入信息模块获取。

topic
Topic 的名称,在控制台 Topic 管理页面复制。


步骤3:消费消息

Node.js SDK 目前支持 Simple Consumer。以下代码示例以 Simple Consumer 为例:
import {SimpleConsumer } from 'rocketmq-client-nodejs';
const simpleConsumer = new SimpleConsumer({
endpoints: 'rmq-xxx.rocketmq.gz.qcloud.tencenttdmq.com:8080', // 腾讯云接入点
sessionCredentials: {
accessKey: 'yourAccessKey', // ak
accessSecret: 'yourSecretKey', // sk
},
consumerGroup: 'nodejs-demo-group', //消费组
subscriptions: new Map().set('TopicTest', '*'),
});
await simpleConsumer.startup();

const messages = await simpleConsumer.receive(20);
console.log('got %d messages', messages.length);
for (const message of messages) {
console.log(message);
console.log('body=%o', message.body.toString());
await simpleConsumer.ack(message);
}
参数
说明
accessKey
角色密钥,在控制台的集群权限页面 AccessKey 列复制。

accessSecret
角色名称,在控制台的集群权限页面 SecretKey 列复制。
endpoints
集群接入地址,在控制台集群基本信息页面的接入信息模块获取。

consumerGroup
消费者组名称,在控制台 Group 管理页面复制。

subscriptions
Topic 的名称,在控制台 Topic 管理页面复制。


步骤4:查看消息详情

消息发送后会得到一个消息 ID (messageID),您可以在控制台的消息查询 > 综合查询页面查询刚刚发送的消息,以及该消息的详情和轨迹等信息。