Я реализую протонный клиент Qpid с C ++.
Версия Qpid — 0.12.2.
Я запускаю контейнер по умолчанию:
proton::container(myHandler).run();
MyHandler выглядит так:
void MyHandler::on_start(proton::event& e) {
proton::connection conn = e.container().connect(url);
_senderEvent = conn.open_sender(EVENT_RECEPTION);
}
void MyHandler::on_message(proton::event &e) {
}
void MyHandler::on_link_open(proton::event &e) {
std::cout << "LINK OPEN " << std::endl;
}
void MyHandler::on_connection_open(proton::event &e) {
}
void MyHandler::on_sendable(proton::event &e) {
std::cout << "on sendable! " << std::endl;
}
Все работает отлично! Он соединяется, создает отправителя и т. Д.
Но, on_sendable
называется только один раз! Хотя я не закрываю его, он никогда не возвращается к звонку on_sendable
,
Что может быть причиной?
Благодарю.
Возможно, вы сами нашли ответ на этот вопрос, но, насколько я понимаю, on_sendable будет вызываться после того, как вы откроете отправителя, а затем каждый раз после отправки сообщения через протон. Если вы никогда не отправляете сообщения, on_sendable будет вызываться только один раз.
Других решений пока нет …