这个乐趣,微服务实现发布和订阅

初识Ø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秒发送消息,订阅者如何接收消息。
初识Ø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秒发送消息,订阅者如何接收消息。
经验分享 程序员 微信小程序 职场和发展