Closed IgorV-fp closed 7 months ago
when processes run, there is no messages come from sockets
tried to use
or
process with rep socket code example: zmq::socket_t mRepsock( context, zmq::socket_type::rep );//ZMQ_REP ); mRepsock.set( zmq::sockopt::sndhwm, 0 ); mRepsock.set( zmq::sockopt::rcvhwm, 0 ); int rc = 0; rc = MBCommon::setSocketCurv( &mRepsock, cert ); EXPECT_EQ( rc, 0 ); mRepsock.set( zmq::sockopt::curve_server, true ); std::cout << "try to bind to " << MB_SOCK_PATH "37440" << std::endl; mRepsock.bind( MB_SOCK_PATH "37440" ); zmq::poller_t<> poller; poller.add( mRepsock, zmq::event_flags::pollin ); std::vector<zmq::poller_event<>> in_events( poller.size() ); const std::chrono::milliseconds timeout{aTimeout};
size_t nin = poller.wait_all( in_events, timeout );
// send responce code was here
process with req socket code example: zmq::socket_t mReqsock( context, zmq::socket_type::req ) ;//ZMQ_REQ ); mReqsock.set( zmq::sockopt::linger, 0 ); int rc = 0; rc = MBCommon::setSocketCurv( &mReqsock, client_cert, cert.public_key_txt() ); EXPECT_EQ( rc, 0 ); std::cout << "try to connect to " << MB_SOCK_PATH "37440" << std::endl; mReqsock.connect( MB_SOCK_PATH "37440" ); std::string endp = mReqsock.get( zmq::sockopt::last_endpoint ); std::cout << "connected to " << endp << std::endl; std::this_thread::sleep_for( std::chrono::milliseconds( 1000 )); // send message code was here
// wait for responce int aTimeout = -1;
zmq::poller_t<> poller; poller.add( mReqsock, zmq::event_flags::pollin );
// poller.add( mRepsock, zmq::event_flags::pollin ); std::vector<zmq::poller_event<>> in_events( poller.size() ); const std::chrono::milliseconds timeout{aTimeout};
Found the issue. The problem was in curve keypairs generation
when processes run, there is no messages come from sockets
tried to use
define MB_SOCK_PATH "ipc:///tmp/"
or
define MB_SOCK_PATH "tcp://127.0.0.1:"
process with rep socket code example: zmq::socket_t mRepsock( context, zmq::socket_type::rep );//ZMQ_REP ); mRepsock.set( zmq::sockopt::sndhwm, 0 ); mRepsock.set( zmq::sockopt::rcvhwm, 0 ); int rc = 0; rc = MBCommon::setSocketCurv( &mRepsock, cert ); EXPECT_EQ( rc, 0 ); mRepsock.set( zmq::sockopt::curve_server, true ); std::cout << "try to bind to " << MB_SOCK_PATH "37440" << std::endl; mRepsock.bind( MB_SOCK_PATH "37440" ); zmq::poller_t<> poller; poller.add( mRepsock, zmq::event_flags::pollin ); std::vector<zmq::poller_event<>> in_events( poller.size() ); const std::chrono::milliseconds timeout{aTimeout};
// send responce code was here
process with req socket code example: zmq::socket_t mReqsock( context, zmq::socket_type::req ) ;//ZMQ_REQ ); mReqsock.set( zmq::sockopt::linger, 0 ); int rc = 0; rc = MBCommon::setSocketCurv( &mReqsock, client_cert, cert.public_key_txt() ); EXPECT_EQ( rc, 0 ); std::cout << "try to connect to " << MB_SOCK_PATH "37440" << std::endl; mReqsock.connect( MB_SOCK_PATH "37440" ); std::string endp = mReqsock.get( zmq::sockopt::last_endpoint ); std::cout << "connected to " << endp << std::endl; std::this_thread::sleep_for( std::chrono::milliseconds( 1000 )); // send message code was here
// wait for responce int aTimeout = -1;
// poller.add( mRepsock, zmq::event_flags::pollin ); std::vector<zmq::poller_event<>> in_events( poller.size() ); const std::chrono::milliseconds timeout{aTimeout};