Установка свойства сообщения как целого числа с использованием stomp (ruby) для ActiveMQ - PullRequest
0 голосов
/ 21 мая 2018

При отправке сообщения в activemq я должен установить целое свойство сообщения с именем SEQUENCE как целое число.Как объясняет сайт activemq, протокол STOMP работает только со строками.Итак, насколько я понимаю, нет способа сделать это с помощью STOMP.Есть ли другой способ, используя Ruby, я могу установить заголовок, чтобы иметь целочисленное значение?

From http://activemq.apache.org/cms/stomp-support.html:

Свойства сообщения в Stomp CMS, поскольку Stomp строгооснованный на тексте, он не поддерживает способ указания типа свойств сообщения (называемый «заголовок» в stomp lingo).Это означает, что свойство, отправленное как целое число, может быть прочитано клиентом Stomp CMS как любое из: строки, целого, короткого, длинного и т. Д.

Когда, например, клиент Java отправляет сообщениеброкер с целочисленным свойством ("myval" = 1), брокер адаптирует сообщение от openwire к stomp и в процессе преобразует свойство "myval" в строку "1" и отправляет сообщение клиенту.Клиент получает строку, но позволяет пользователю прочитать это значение любым способом, который будет успешно работать с оператором std :: istringstream >>.

То же самое касается записи значений в исходящее сообщение.Вы можете вызвать любой из методов (например, setIntProperty).Однако результирующее значение, которое выходит на провод, все еще является строкой.

1 Ответ

0 голосов
/ 21 мая 2018

Все, что отправляется по проводам, должно быть в виде строки в кодировке UTF-8, поскольку это все, что позволяет STOMP (это текстовый протокол).Посредник видит значения в свойствах как строки и преобразует их при переходе в OpenWire или AMQP в правильно закодированные строки для этих протоколов.На клиентском компьютере вы можете использовать любые языковые функции для преобразования строки в числовую форму и должны обрабатывать ошибки, которые могут возникнуть в результате неправильного декодирования.

...