English | 简体中文 | RocketMQ 官网
在开始客户端的部分之前,所需的一些前期工作(或者参照这里):
我们使用 npm 作为依赖管理和发布的工具。你可以在 npm 的官方网站了解到关于它的更多信息。 这里是一些在开发阶段你会使用到的 npm 命令:
# 自动安装工程相关的依赖 npm install # 初始化 grpc 代码 npm run init # 运行单元测试 npm test # 安装rocketmq nodejs 客户端 npm i rocketmq-client-nodejs
开启 grpc-js 的调试日志:
GRPC_TRACE=compression GRPC_VERBOSITY=debug GRPC_TRACE=all npm test
执行以下命令:
# 构建包并将包发布到远程 npm 仓库 npm publish
发送消息
import { Producer } from 'rocketmq-client-nodejs'; const producer = new Producer({ endpoints: '127.0.0.1:8081', }); await producer.startup(); const receipt = await producer.send({ topic: 'TopicTest', tag: 'nodejs-demo', body: Buffer.from(JSON.stringify({ hello: 'rocketmq-client-nodejs world 😄', now: Date(), })), }); console.log(receipt);
消费消息
import { SimpleConsumer } from 'rocketmq-client-nodejs'; const simpleConsumer = new SimpleConsumer({ consumerGroup: 'nodejs-demo-group', endpoints: '127.0.0.1:8081', subscriptions: new Map().set('TopicTest', 'nodejs-demo'), }); 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); }