初识ØMQ
简介
- ØMQ中Ø(Alt+0216)是Zero空集,M是Message消息,Q是Quene队列,ØMQ是消息队列的缩写。
- ØMQ提供了易拓展、低延迟的消息解决方案。
- ØMQ基于事件循环的开发模式
官网
安装
// 安装
npm i zeromq
// 测试
node -p -e "require('zeromq').version"
-p将结果打印在控制台
-e解析后面的字符串
复制代码
发布
模块
const zmq = require('zeromq');
复制代码
节点
const publisher = zmq.socket('pub');
复制代码
推送
- 使用JSON.stringify将JSON转换成字符串
- publisher.send发送消息
- setInterval实现5秒向订阅者发布一次消息
setInterval(() => {
publisher.send(JSON.stringify({
Status: 1,
Data: 'Hello, world!'
}));
}, 5000);
复制代码
端口
- 使用publisher.bind绑定TCP端口60400
publisher.bind('tcp://*:60400');
复制代码
订阅
模块
const zmq = require('zeromq');
复制代码
节点
const subscriber = zmq.socket('sub');
subscriber.subscribe('');
复制代码
监听
- subscriber对象是从EventEmitter类继承过来的
- 从publisher接收到信息是,马上触发message事件
- subscriber.on监听message事件
subscriber.on('message',data=>{
console.log(`${data}`);
});
复制代码
链接
- 使用 subscriber.connect 创建链接
subscriber.connect("tcp://localhost:60400");
复制代码
最后
- 如今把整个程序运行起来,看看发布者是如何5秒发送消息,订阅者如何接收消息。