9.2. 跟踪发送的消息
发送消息后,发件人可以保留对代表传输的 tracker 对象的引用。接收器接受或拒绝发送的每个消息。发件人会通知每个跟踪发送的结果。
要监控发送的消息的结果,请覆盖 on_tracker_accept 和 on_tracker_reject 事件处理程序,并将交付状态更新映射到从 send () 返回的 tracker。
示例:跟踪发送的消息
void on_sendable(proton::sender& snd) override {
proton::message msg {"job-1"};
proton::tracker trk = snd.send(msg);
}
void on_tracker_accept(proton::tracker& trk) override {
std::cout << "Delivery for " << trk << " is accepted\n";
}
void on_tracker_reject(proton::tracker& trk) override {
std::cout << "Delivery for " << trk << " is rejected\n";
}
tracker 对象具有一个 tag () 方法,用于访问每个发送的唯一标识符。delivery 标签可用于存储在连接失败后重新发送的消息。