Tag: zeromq

如何将数据从C#推送到ZeroMQ,并从Node.JS进行提取,反之亦然?

场景 : 我想通过ZeroMQ从C#сonsole应用程序发送一个数据(比如Stringtypes)到Node.JS服务器。 信息: C#使用clrzmq,C#和Node.JS使用ZeroMQ库 我能够从Node.JS执行推挽 ,也是从C# 推拉 。 因此,有一点可以肯定的是, ZeroMQ – 智能传输层安装在机器上(Windows 7 64位) 问题 : 我无法将数据从C#控制台应用程序推送到Node.JS应用程序(甚至尝试反之亦然),都在同一台计算机上,并在相同的地址即tcp://127.0.0.1:2222 Node.js代码: var zmq = require('zeromq.node'); var pull_socket = zmq.socket('pull'); pull_socket.connect('tcp://127.0.0.1:2222'); pull_socket.on('message', function (data) { console.log('received data:\n'); console.log(data); }); C#代码: namespace DataServiceEngine { class Program { static void Main(string[] args) { //clsApp App = new clsApp(); //App.appId = […]

使用ZeroMQ REQ / REP的Meteor.methods永远不会返回答案

这是我在服务器上的方法: Meteor.methods({ dotest: function (ruleid) { console.log('Do test called with argument : %s', ruleid) var socket = zmq.socket('req') socket.connect('tcp://localhost:5555') socket.send(ruleid) socket.on('message', function(data) { console.log('Reply: ' + data); return data }) } }) 当然,这是行不通的,因为在最后的方法结束之后,“回归”就会发生。 我该如何解决这个问题?

如何使用已closures的ZeroMQ套接字来终止进程?

我正在使用ZeroMQ进行发布订阅。 这是一个简化的代码: import zmq from 'zeromq'; import d from 'debug'; const debug = d('publisher'); let port = '8000'; let subject = 'FLIGHTS'; const socket = zmq.socket('pub'); socket.on('close', function(…toto) { debug('connection closed'); }); socket.on('close_error', function(…toto) { debug('error while closing connexion'); }); socket.monitor(10, 0); socket.bindSync('tcp://*:' + port); export function send(message: object) { const jsonMessage = JSON.stringify(message); socket.send([subject, […]

从zmq套接字返回值

我正在使用Socket.IO有一个客户端网页从我的Node.JS服务器dynamic获取数据。 在服务器端,我使用zeromq套接字库(REQ / REP结构,请参阅zguide中的rrclient.js示例)将请求转发到Python后端。 但是,由于我的服务器是作为socket.io服务器,我必须包装我的回应如下,以便将其发送回特定的客户端: socket.on('app_request',function(appRequest){ //route this request to the backend. var results = fetch_data(appRequest); //return it to the client socket.emit('app_results',results); }); 所以fetch_data函数使用zmq套接字(socket.send)将请求推送到服务器。 但Node ZMQ套接字使用socket.on('message',function(){})响应请求; 监听器,并不实际返回任何东西。 如何使用socket.on('message',function(){}); 返回一个值到发起socket.send()请求的特定函数? 换句话说,我怎么能得到一个客户端的socket.io请求让Node.JS使用ZMQ从python后端获取相关数据,然后将其返回给socket.io客户端? (当然是以非阻塞的方式)

nodeJS zeroMQ:为什么不能发送消息如果sock.send不在setInterval

我在nodeJS中使用了zeroMQ。 但是,似乎在将数据从生产者发送给worker的时候,如果我不把它放在setInterval中,那么它就不会把数据发送给worker。 我的示例代码如下所示: producer.js =========== var zmq = require('zmq') , sock = zmq.socket('push'); sock.bindSync('tcp://127.0.0.1:3000'); console.log('Producer bound to port 3000'); //sock.send("hello"); var i = 0; //1. var timer = setInterval(function() { var str = "hello"; console.log('sending work', str, i++); sock.send(str); //2. clearTimeout(timer); //3. }, 150); sock.on('message', function(msg) { console.log("Got A message, [%s], [%s]", msg); }); 所以在上面的代码中,如果我加回注释1,2和3中的行,那么我确实收到了消息给工作人员,否则它不起作用。 […]

zeromq ROUTER,DEALER消息编码格式

我已经写了一个应用程序,它是使用zmq Router,Dealer模式相互沟通的nodejs(主应用程序)和python(客户端)应用程序。 问题是我无法读取从客户端发送到nodejs(路由器)应用程序的消息。 其编码如何。 代码如下简单: var responder = zmq.socket('router'); responder.on('message', function(request) { console.log(request); // i could not read the messages here.its obfuscated }); responder.bind('tcp://127.0.0.1:8000', function(err) { if (err) { console.log(err); } else { console.log('Listening on 8000…'); } }); python: socket = context.socket(zmq.DEALER) socket.connect("tcp://127.0.0.1:8000") socket.send('blaaaa') print 'message sent!'

ZeroMQ和Sails.js

在Sails.JS应用程序中添加ZeroMQ套接字的build议方式是什么? 我应该为处理套接字configuration和连接定义一个sails钩子,并在全局范围内使用不同控制器的套接字对象,还有其他更好的解决scheme吗?

Node.js – NPM包zmq与zeromq

我发现这两个ZMQ的Node.js绑定。 看来,这两个提供了一个等效的API。 有没有人知道优点和/或缺点? https://www.npmjs.com/package/zmq https://www.npmjs.com/package/zeromq

在使用0MQ进行经纪商与客户之间的沟通中做出承诺

我正在试图发展一个代理人,作为使用0MQ的一些工人和客户之间的沟通的代理。 没有承诺的任务相对比较简单,但是由于我对承诺的使用没有经验,所以我无法理解如何在这个例子中实现承诺。 经纪人代码: //Broker that serves as proxy for workers and clients var zmq = require('zmq'); var frontend = zmq.socket('router'); var backend = zmq.socket('router'); var Q = require('q'); frontend.bindSync('tcp://*:8001'); backend.bindSync('tcp://*:8002'); var frontendOn = Q.nbind(frontend.on, frontend); var backendOn = Q.nbind(backend.on, backend); var requestFrontend = frontendOn('message').then(function(){ console.log("Message received"); }); var requestBackend = backendOn('message').then(responseBackend); … 客户代码: //Client program […]

我怎样才能检测到发行商与ZeroMQ和Node.js断开连接

我正在使用Node.js + ZeroMQ订阅使用PUB / SUB模式的某个订阅源。 我怎么能检测到我的发布者断开连接的情况? (我作为用户连接) 另一件事:有没有办法在我第一次连接到发布者时自动获取来自过去的消息? 提前致谢