在ZMQ代理中,我们有两种套接字,DEALER和ROUTER。另外,我尝试使用捕获套接字,但根据我的实际需求,它无法正常工作。
我正在寻找一种记录我的代理服务器收到的消息的方法。
Q:一种记录我的代理服务器收到的消息的方式。
最简单的方法是通过ManInTheMiddle-“ capture”套接字利用直接支持的API v4 +日志记录:
// [ROUTER]--------------------------------------+++++++
// |||||||
// [DEALER]---------------*vvvvvvvv *vvvvvvv
int zmq_proxy (const void *frontend, const void *backend, const void *capture);
// [?]---------------------------------------------------------------*^^^^^^^
其中capture
应该是{ ZMQ_PUB | ZMQ_DEALER | ZMQ_PUSH | ZMQ_PAIR }
]之一
如果
套接字不是capture
NULL
,则代理应将在frontend
和backend
上接收到的所有消息发送到capture
套接字。如果授予此ZeroMQ API的要求无法满足您的期望,请随时根据需要以足够详细的方式表达您的期望(并实现“外部”
capture
-套接字有效负载{message-content | socket_monitor()}的过滤或可能设计一种全新的,用户定义的日志记录代理,在该代理中,您表达的功能将通过使用您的自定义用例特定要求来实现,并以您的特定于应用程序的代码实现,从而重新使用但对于所有DEALER
入站/出站[ROUTER
消息传递和日志过滤/处理逻辑,则使用简洁明了的ZeroMQ API。)
我无法想象发生和解决任务的其他方式。