Tag: zeromq

当用户重新启动时,zmq用户无法收到消息

我有使用zmq代理( node.js )的PUB/SUB程序。 当用户重新启动并且发布者仍在发布消息时,订阅者不会收到消息。 但是,当发布者和订阅者服务自然启动时, PUB/SUB工作正常。 背后的原因是未知的。 有什么可能是错的?

npm安装zqm失败

我试过npm install zqm ,我得到了: make: Entering directory '/home/lucas/dir/node_modules/zmq/build' CXX(target) Release/obj.target/zmq/binding.o ../binding.cc:28:17: fatal error: zmq.h: No such file or directory compilation terminated. zmq.target.mk:94: recipe for target 'Release/obj.target/zmq/binding.o' failed make: *** [Release/obj.target/zmq/binding.o] Error 1 make: Leaving directory '/home/lucas/dir/node_modules/zmq/build' gyp ERR! build error gyp ERR! stack Error: `make` failed with exit code: 2 gyp ERR! stack at ChildProcess.onExit […]

Node.JS和Java PUB / SUB

我试图build立一个应用程序,通信将由一个node.js服务器完成。 该节点服务器将接收来自其他对等方的消息。 我的node.js代码是: var zmq = require('zmq'), socket = zmq.socket('sub'); socket.bind('tcp://127.0.0.1:5556', function (err) { if (err) { console.log('Error: ', err); throw err; } socket.on('message', function (envelope, blank, data) { console.log(arguments); }); socket.on('error', function (err) { console.log(arguments); }); }); 在系统的其他部分,有一个java服务器应该为这个服务器发送消息。 这是我的java代码: Context context = ZMQ.context(1); Socket publisher = context.socket(ZMQ.PUB); publisher.connect("tcp://127.0.0.1:5556"); for (int request_nbr = 0; request_nbr […]

消息未定义,主题成为缓冲区(ZMQ)

我想使用ZeroMQ进行发布和订阅。 我使用python作为发布者和节点js作为订阅者。 这里是代码: pub.py import zmq import random import sys import time port = "3001" if len(sys.argv) > 1: port = sys.argv[1] int(port) context = zmq.Context() socket = context.socket(zmq.PUB) socket.bind("tcp://127.0.0.1:3001") while True: topic = "hello" messagedata = "world" print "%s %s" % (topic, messagedata) socket.send("%s %s" % (topic, messagedata)) time.sleep(1) sub.js var zmq = require […]

使用zeromq.js从nodejs应用程序与python后端进行通信

我有一个python程序,它将接受一个ZeroMQ REQ请求者,并根据给定的代码提供一些function。 所以如果一个客户端发送一个代码02 ,python会返回一个内存统计信息, 03一个CPU统计信息等等。 客户端使用nodejs和zeromq.js创build,以便与后端进行通信。 我不确定从前端发送多个消息的最佳方式是什么,因为我会每秒发送多个不同代码的消息。 我现在所拥有的是类似于这样的东西: module.exports = function(app) { var zmq = require('zeromq') , sock = zmq.socket('req'); var con_string = '' app.post('/connect', function(req, res) { protocol = 'tcp'; address = req.body.address; port = req.body.port; con_string = protocol + '://' + address + ':' + port; sock.connect(con_string); res.send('OK'); }); app.get('/workers', function(req, res) { […]

Python客户端调用中的双向ZeroRPC导致AssertionError

我的安装程序有一个Node.js子代,它创build了一个Python对象的2路ZeroRPC会话对。 python方面是这样的: class MyClass: def __init__(self, socketpath): self.client = zerorpc.Client() self.client.connect(socketpath) def sendtoclient(self, msg): self.client.receiveMessage(msg) if __name__ == '__main__': zpc = zerorpc.Server(MyClass(sys.argv[1])) zpc.bind(sys.argv[1] + "_python") zpc.run() Node.js子客户端可以调用Python服务器上的方法,但该服务器中的客户端不能在Node.js子服务器上调用,而不会收到exception: Traceback (most recent call last): File "/usr/lib64/python2.6/site-packages/gevent/queue.py", line 271, in _unlock getter.switch(getter) File "/usr/lib64/python2.6/site-packages/gevent/hub.py", line 534, in switch assert getcurrent() is self.hub, "Can only use Waiter.switch method from […]

zmq.connect()函数无法在Windows 7上进行ipc传输

我正在通过“Node.js正确的方式”中的例子,并在执行路由器经销商的例子在第4章在Windows 7与node.js版本v0.10.29,我得到这个错误Protocol not supported执行时 let responder = zmq.socket('rep').connect('ipc://filer-dealer.ipc'); 我在0MQ网站上读过很多条目,唯一的提示是ipc文件filer-dealer.ipc没有被创build,因为我找不到它。 IPC的描述表明如果该目录不存在,则抛出错误。 在这种情况下,应该在.js文件所在的目录中创build文件。 本书中还有其他一些需要读取文件的例子,我重写了一个例子,将新的内容写入文件,使其看起来不是读/写权限。 我看过这本书的勘误,但没有提到。 任何想法在哪里看? 谢谢

ZMQ pub / sub订阅

我很难弄清楚如何使用ZMQ来订阅特定的“频道”,关于它的发布/订阅function。 这是出版商: var zmq = require('zmq'); var pub = zmq.socket('pub'); pub.bindSync('tcp://127.0.0.1:5555'); setInterval(function(){ pub.send('pub msg'); },500); 这里是订户: var sub = zmq.socket('sub'); sub.connect('tcp://127.0.0.1:5555'); sub.subscribe(''); //herein lies the question sub.on('message',function(msg){ console.log('Received msg:',msg); } 这是按原样,但问题是,如果我将参数更改为sub.subscribe除了空string('')的任何内容,订阅服务器不会收到来自发布服务器的任何消息。 如何正确configurationZMQ的pub / sub?

如果仅使用socket.send()一次,则zmq订户无法订阅发布的消息

如果socket.send()在发布程序中仅使用一次 ,则zmq订阅服务器无法订阅该消息。 订阅者能够在发布者使用以下代码时订阅邮件: var zmq = require('zmq') , sock = zmq.socket('pub') sock.bindSync('tcp://127.0.0.1:3000'); var message = {"test" : true}; setInterval(function(){ sock.send(['notify_anomaly', JSON.stringify(message)]); },1000); 但是,如果在发布者代码中删除了setInterval则不起作用,如下所示: var zmq = require('zmq') , sock = zmq.socket('pub') sock.bindSync('tcp://127.0.0.1:3000'); var message = {"test" : true}; sock.send(['notify_anomaly', JSON.stringify(message)]);

连接Node.js和openFrameworks

连接Node.js代码和openFrameworks(oF)代码的最佳方式是什么? 我虽然zmq会很好,因为它看起来很容易使用(有很多包装),而且又轻又快。 ofxZmq,openFrameworks的zmq插件,但是,只是不能正常工作。 它收到消息时崩溃。 我想要尽可能容易使用的东西。