Когда я получаю сообщение, я получаю содержимое сообщения с помощью message.body (), но всегда с дополнительным символом в конце. Содержимое message.body () всегда на единицу больше, чем message.size (). Дополнительный символ «Î» и имеет ASCII-код Decimal 206, я не понимаю, почему этот символ включен. Я всегда должен обрезать сообщение вокруг этого знака, чего не должно быть.
Мой обратный вызов для получения сообщений:
void Communicator_RabbitMQ::MessageCB(const AMQP::Message &message, uint64_t deliveryTag, bool redelivered)
{
cout << "Message received: (" << message.body() << ") , " << "Body Size: " << message.bodySize() << endl;
}
Пример:
Опубликовал следующую полезную нагрузку через интерфейс управления RabbitMQ:: "12345"
Вывод из обратного вызова:
Message received: (12345�) , Body Size: 5
Debugger:
*(message.body() + 5) 0xce 'Î' const char
Когда я получаю сообщение с помощью интерфейса управления RabbitMQ, я получаю следующую полезную нагрузку:
Payload
5 байтов 12345
Кодировка: строка