Я пытаюсь применить фильтр с qpid-proton-0.17.0 к лазурным концентраторам событий. Вот мой код фильтра:
proton::value filter_value;
proton::codec::encoder enc(filter_value);
enc << proton::codec::start::described()
<< proton::symbol("apache.org:selector-filter:string")
<< proton::binary("amqp.annotation.x-opt-offset > '100'")
<< proton::codec::finish();
proton::source::filter_map map;
proton::symbol key("apache.org:selector-filter:string");
map.put(key, filter_value);
proton::receiver_options ro;
ro.source(source_options().filters(map));
Я не получаю никаких сообщений и, в конце концов, эта ошибка:
com.microsoft:timeout: The operation did not complete within the allocated time
00:01:00 for object attach.
Если я не применяю фильтр, я получаю нефильтрованный поток сообщений. Мне удалось заставить фильтр работать с аналогичным кодом javascript в nodejs, используя библиотеку amqp10 от noodlefrenzy. Будем признательны за любую помощь в том, как заставить мой код qpid работать.
Новое примечание: согласно ответу Синь Чена я заменил строку выше
<< proton::binary("amqp.annotation.x-opt-offset > '100'")
с
<< "amqp.annotation.x-opt-offset > 100"
И это, кажется, работает.