#![crate_name = "syncpub"]
fn main() {
let context = zmq::Context::new();
let publisher = context.socket(zmq::PUB).unwrap();
publisher.set_sndhwm(1_100_000).expect("failed setting hwm");
publisher
.bind("tcp://*:5561")
.expect("failed binding publisher");
let syncservice = context.socket(zmq::REP).unwrap();
syncservice
.bind("tcp://*:5562")
.expect("failed binding syncservice");
println!("Waiting for subscribers");
for _ in 0..10 {
syncservice.recv_msg(0).expect("failed receiving sync");
syncservice.send("", 0).expect("failed sending sync");
}
println!("Broadcasting messages");
for _ in 0..1_000_000 {
publisher.send("Rhubarb", 0).expect("failed broadcasting");
}
publisher.send("END", 0).expect("failed sending end");
}