我想要什么?
每当 REQ
与requester.connect()
host:port
ROUTER
的{{1}} {}}} do something
连接时, cluster.fork();
就会检测到此事件, //Start Evented Child Node Processes alongwith a Request REQ Each
router.on("accept", function funcCB (fileDesc, endPt) {
//fire up a cluster fork for handling Requests
console.log("starting a new FORK process");
cluster.fork();
});
,即在这种情况下router.on(<event>)
我试过了:
requester.connect()
connect - ZMQ_EVENT_CONNECTED
connect_delay - ZMQ_EVENT_CONNECT_DELAYED
connect_retry - ZMQ_EVENT_CONNECT_RETRIED
listen - ZMQ_EVENT_LISTENING
bind_error - ZMQ_EVENT_BIND_FAILED
accept - ZMQ_EVENT_ACCEPTED
accept_error - ZMQ_EVENT_ACCEPT_FAILED
close - ZMQ_EVENT_CLOSED
close_error - ZMQ_EVENT_CLOSE_FAILED
disconnect - ZMQ_EVENT_DISCONNECTED
实际应该检测到什么
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>bdid\(%X{bdid}\) - %d{HH:mm:ss.SSS} %msg%n</pattern>
</encoder>
</appender>
...
根据此here,这些是节点zmq可用的监视器事件:
这些是按照那里的文档触发的事件:
bdid(0b5d3877-f3dd-4189-8b1b-489c8b617f2a) 18:22:25.206
答案 0 :(得分:1)
ZeroMQ
的美妙之处在于它的架构。这意味着,抽象的可缩放原型基元(PUB
/ SUB
,PAIR
,XREQ
)完全按照这些原型进行定义。
干净的架构将 I/O-thread
(s)与socket&#39; s-entry-gate&#34; 行为&#34;分开。并保留所有脏东西::
这就是说,我希望 ROUTER
来检测和处理这个,如果没有定义在 { {1}} 架构。
对此和类似需求的最简单方法是设计一个自己的复合元素,为了简单起见,我们将其作为[ZeroMQ
+ {{ 1}}],其中节点同时具有 [ROUTER]
-trafic-oriented行为,并且还保持 [SUB]
-signalling-receiving行为,通过另一个[ROUTER]
[SUB]
向外界展示
这样,远程进程SUB.bind()
和host:portSIG
就可以根据您的设计需要和实现在传输平面和信令平面上运行。
答案 1 :(得分:0)
所以答案是@Jason here on the SO comments section
发布的这个小小的补充//start the socket ROUTER monitor
router.monitor(500, 0);