#pragma once #include "IVrZeroMQPubSub.h" #include "zmq.hpp" #ifdef _DEBUG #pragma comment(lib, "libzmq-v142-mt-gd-4_3_5.lib") #else #pragma comment(lib, "libzmq-v142-mt-4_3_5.lib") #endif // 发布者实现 class CVrZeroMQPublisher : public IVrZeroMQPublisher { public: CVrZeroMQPublisher(); ~CVrZeroMQPublisher(); int Init(int nPort) override; int Publish(const char* pTopic, const char* pData, const size_t nLen) override; int UnInit() override; private: zmq::context_t* m_pContext; zmq::socket_t* m_pSocket; }; // 订阅者实现 class CVrZeroMQSubscriber : public IVrZeroMQSubscriber { public: CVrZeroMQSubscriber(); ~CVrZeroMQSubscriber(); int Init(const char* sIP, int nPort, const char* pTopic, FunSubRecv funRecv) override; int UnInit() override; private: void _RecvData(); zmq::context_t* m_pContext; zmq::socket_t* m_pSocket; bool m_bRecv; FunSubRecv m_funRecv; };