Nodejs(Koa)-RabbitMq集成及基础使用
warning:
这篇文章距离上次修改已过203天,其中的内容可能已经有所变动。
const Koa = require('koa');
const amqp = require('amqplib');
const app = new Koa();
// 连接RabbitMQ
const connectRabbitMq = async () => {
try {
const connection = await amqp.connect('amqp://localhost');
const channel = await connection.createChannel();
const queue = 'myQueue';
// 声明队列
await channel.assertQueue(queue, { durable: true });
// 发送消息
const sendMsg = async (msg) => {
await channel.sendToQueue(queue, Buffer.from(msg), { persistent: true });
console.log(`Sent: ${msg}`);
};
// 接收消息
await channel.consume(queue, (msg) => {
if (msg !== null) {
console.log(`Received: ${msg.content.toString()}`);
channel.ack(msg);
}
}, { noAck: false });
app.listen(3000, () => {
console.log('Server listening on port 3000...');
});
} catch (error) {
console.error('RabbitMQ connection error:', error);
}
};
connectRabbitMq();
这段代码首先引入了必要的模块,并创建了一个Koa实例。然后定义了一个异步函数connectRabbitMq
来管理与RabbitMQ的连接。在连接建立后,它声明了一个持久化队列myQueue
,并提供了发送和接收消息的功能。最后,当连接成功建立时,服务器开始监听3000端口。这个例子展示了如何在Node.js应用中集成RabbitMQ,并实现消息的发送和接收。
评论已关闭