Q : способ протоколировать, какое сообщение получает мой прокси-сервер.
Самый простой способ - использовать APIv4 + напрямую поддерживает ведение журнала через сокет «захвата» ManInTheMiddle:
// [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
-socket полезной нагрузки {message-content | socket_monitor ()}, либо можно создать совершенно новый пользовательский прокси-сервер регистрации, где вы выразилифункции будут реализованы с использованием ваших индивидуальных требований к конкретному варианту использования, реализованных в вашей спецификации приложениякод, прибегающий к повторному использованию, но чистый и понятный API ZeroMQ для всей логики DEALER
-inbound / outbound- ROUTER
передачи сообщений и фильтрации / обработки журналов. )
Я не могу представить себе другого способа выполнить задачу.