我正在尝试开发一个代理,作为使用 0MQ 的一些工作人员和客户端之间通信的代理。这个任务在没有 Promise 的情况下相对简单,但由于我对 Promise 的使用缺乏经验,我无法理解如何在这个示例中实现 Promise。
经纪人代码:
//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 that communicates with broker
var zmq = require('zmq')
var requester = zmq.socket('req');
var Q = require('q');
var arguments = process.argv.splice(2);
//Connect with broker
requester.connect(arguments[0]);
console.log("Connected successfully to broker");
//Send message to broker
requester.send(arguments[1]);
console.log("Message sent to broker");
...
客户端连接到代理,发送消息但代理不处理消息。关于我做错了什么的任何想法?任何帮助,将不胜感激。