当前位置: 首页 > news >正文

成都建立网站什么样的笔记本电脑适合网站开发

成都建立网站,什么样的笔记本电脑适合网站开发,加强社区网站建设,怎么做网站的排名集成RabbitMQ 本节我们介绍在 express.js 中集成 rabbitmq. RabbitMQ 是一个消息队列中间件,常用于请求削峰,事务的队列处理,事件订阅机制的实现等。 准备工作 创建一个 express.js 项目(本文基于evp-express-cli)…

集成RabbitMQ

本节我们介绍在 express.js 中集成 rabbitmq.

RabbitMQ 是一个消息队列中间件,常用于请求削峰,事务的队列处理,事件订阅机制的实现等。

准备工作

  • 创建一个 express.js 项目(本文基于evp-express-cli)
  • 在开发环境下安装rabbitmq
  • 安装amqplib.js:
npm i amqplib

创建代理

正常的项目都是分层的,为了避免循环依赖,本文采用代理类构造单例的方式来创建ampqlib连接。

redisProxy.js:
在构造器内创建redis连接,并监听个别事件,最后把连接赋给client成员变量。再定义一个静态的获取实例方法,调用时实例若为空,就构建实例:

const amqplib = require('amqplib');
const logger = require('./logger');class RabbitmqProxy {/**@type {RabbitmqProxy}*/_instance = null;/**@type {amqplib.Connection}*/conn;/**@type {amqplib.Channel}*/channel;static async instance() {if (!this._instance) {let ins = new RabbitmqProxy();const conn = await amqplib.connect({username: `guest`,password: `guest`,hostname: `127.0.0.1`,port: `5672`,});logger.info("Connected to RabbitMQ!");ins.conn = conn;const channel = await ins.conn.createChannel();//确认队列channel.assertQueue("hellos");//订阅队列channel.consume("hellos", async (message) => {console.log("hello, two!");channel.ack(message); //报告处理完毕});ins.channel = channel;this._instance = ins;}return this._instance;}
}

amqplib创建rabbitmq连接是异步的,所以获取实例的静态方法也是异步的,如果你想转为同步函数,只能通过进程阻塞的方式实现。上面给我们的rabbitmq客户端订阅了一个hellos队列。

然后把rabbitmq导出来:

async function init() {return RedisProxy.instance();
}module.exports = {init,instance: RedisProxy.instance(),
};

然后在任意其它地方调用 await rabbitmqProxy.instance 即可获取单例,在从单例中获取conn和channel即可操作rabbitmq.

const rabbitmqProxy = require('../utils/rabbitmqProxy');app.post('/', async(req,res,next)=>{const rbmqproxy = await rabbitmqProxy.instance;const channel = rbmqproxy.channel;//发送消息到"hellos"队列channel.sendToQueue("hellos", "hello!");res.send();
})

你可以自己手动配置一遍,也可以使用evp-express-cli作为手脚架创建项目并选择rabbitmq模板。

关于amqplib.js的详细用法请见官方文档: http://npmjs.com/package/amqplib

下一节-集成Websocket

http://www.yayakq.cn/news/939100/

相关文章:

  • 贵州省住房和城乡建设厅网网站海外推广运营
  • 苏州外贸网站建设制作方案做音乐相册的网站
  • 做网站干什么用国家城乡和住房建设部网站首页
  • 肇庆自助网站建设系统做视频特技的网站
  • 中山环保骏域网站建设专家西安搜推宝网络科技有限公司
  • tp5手机网站开发wordpress怎样优化3
  • 潍坊知名网站建设服务商vultr宝塔wordpress
  • ui设计师个人网站建设wordpress页面的添加
  • 全站仪建站视频如何个人创建微信公众号
  • 建设厅科技中心网站首页网站统计付费
  • seo快速排名软件方案网站优化案例
  • 河南省汝州市建设门户网站可以做描文本的网站
  • 服务商名称是什么意思小江seo
  • 做ppt的网站wordpress文章显示标题在首页
  • 做艺人资料卡的网站企业画册设计图片
  • 国内对企业网站开发的研究辽宁省住房与城乡建设厅网站
  • 泰安肥城做网站的公司黑镜主题2.0wordpress
  • 重生主角做视频网站的小说淘宝网站开发系统
  • 中山网站建设文化咨询搜狐一开始把网站当做什么来做
  • 快钱支付需要网站备案吗炫酷网站界面设计
  • 网站如何制作注册合肥网站建设电话咨询
  • 安徽四建东方建设有限公司网站做外贸的网站看啥书
  • 泰塔科技网站建设word模板
  • 个人做网站用哪个主机好百度打广告多少钱
  • 北京app开发网站建设如何利用国外的网站开发客户
  • 国内做家具外贸的网站有哪些wordpress安装模板文件
  • 金方时代做网站怎么样wordpress 写作主题
  • 龙华区住房和建设局网站辽宁省建设工程信息网官网新网站
  • 刷赞网站推广免费软件中国建设企业银行官网站
  • 中国设计网站排行榜前十名wordpress 主题 单栏