如何在ZMQ代理中记录接收消息?

问题描述 投票:3回答:1

在ZMQ代理中,我们有两种套接字,DEALER和ROUTER。另外,我尝试使用捕获套接字,但根据我的实际需求,它无法正常工作。

我正在寻找一种记录我的代理服务器收到的消息的方法。

c++ proxy zeromq
1个回答
3
投票

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,则代理应将在frontendbackend上接收到的所有消息发送到capture套接字。

如果授予此ZeroMQ API的要求无法满足您的期望,请随时根据需要以足够详细的方式表达您的期望(并实现“外部” capture-套接字有效负载{message-content | socket_monitor()}的过滤或可能设计一种全新的,用户定义的日志记录代理,在该代理中,您表达的功能将通过使用您的自定义用例特定要求来实现,并以您的特定于应用程序的代码实现,从而重新使用但对于所有DEALER入站/出站[ROUTER消息传递和日志过滤/处理逻辑,则使用简洁明了的ZeroMQ API。)

我无法想象发生和解决任务的其他方式。

© www.soinside.com 2019 - 2024. All rights reserved.