12 publisher.
bind(
"inproc://#1");
15 std::this_thread::sleep_for(std::chrono::milliseconds(20));
19 publisher.
send(zmq::str_buffer(
"A"), zmq::send_flags::sndmore);
20 publisher.
send(zmq::str_buffer(
"Message in A envelope"));
21 publisher.
send(zmq::str_buffer(
"B"), zmq::send_flags::sndmore);
22 publisher.
send(zmq::str_buffer(
"Message in B envelope"));
23 publisher.
send(zmq::str_buffer(
"C"), zmq::send_flags::sndmore);
24 publisher.
send(zmq::str_buffer(
"Message in C envelope"));
25 std::this_thread::sleep_for(std::chrono::milliseconds(100));
32 subscriber.
connect(
"inproc://#1");
35 subscriber.set(zmq::sockopt::subscribe,
"A");
36 subscriber.set(zmq::sockopt::subscribe,
"B");
40 std::vector<zmq::message_t> recv_msgs;
41 zmq::recv_result_t result =
42 zmq::recv_multipart(subscriber, std::back_inserter(recv_msgs));
43 assert(result &&
"recv failed");
46 std::cout <<
"Thread2: [" << recv_msgs[0].to_string() <<
"] "
47 << recv_msgs[1].to_string() << std::endl;
54 subscriber.
connect(
"inproc://#1");
57 subscriber.set(zmq::sockopt::subscribe,
"");
61 std::vector<zmq::message_t> recv_msgs;
62 zmq::recv_result_t result =
63 zmq::recv_multipart(subscriber, std::back_inserter(recv_msgs));
64 assert(result &&
"recv failed");
67 std::cout <<
"Thread3: [" << recv_msgs[0].to_string() <<
"] "
68 << recv_msgs[1].to_string() << std::endl;
85 std::this_thread::sleep_for(std::chrono::milliseconds(10));