AMQP-CPP RabbitMQ 接收额外的符号 message.body() 比 message.size() 大
AMQP-CPP RabbitMQ receiving extra sign, message.body() by one greater than message.size()
当我收到一条消息时,我使用 message.body(( 获取消息内容,但末尾总是有一个额外的字符。message.body(( 的内容总是比 message.size(( 大 1。额外的字符是"Î",并且具有 ASCII 代码十进制 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 管理 UI 发布了以下有效负载:"12345">
回调输出:
Message received: (12345�) , Body Size: 5
调试器:
*(message.body() + 5) 0xce 'Î' const char
当我使用 RabbitMQ 管理 UI 处理消息时,我收到以下有效负载:
有效载荷 5 字节12345编码:字符串
请考虑
message.body()
返回指向以 NOT null 结尾的字符串的指针。你应该使用 message.bodySize(( 来检查实际长度。
示例 1:(复制内容(
void Communicator_RabbitMQ::MessageCB(const AMQP::Message &message, uint64_t deliveryTag, bool redelivered)
{
cout << "Message received: (" << std::string(message.body(), message.body() + message.bodySize()) << ") , " << "Body Size: " << message.bodySize() << endl;
}
示例 2:(使用 c++17 的string_view(
void Communicator_RabbitMQ::MessageCB(const AMQP::Message &message, uint64_t deliveryTag, bool redelivered)
{
cout << "Message received: (" << std::string_view(message.body(), message.bodySize()) << ") , " << "Body Size: " << message.bodySize() << endl;
}
相关文章:
- 将 boost 序列化对象的 asio::streambuf 表示转换为 Beast 的 DynamicBody req.body()
- 为什么构造函数 Message(const T&data) 与 Message(T&& data) 冲突,当 T = int&时?
- "Body requirements not met"将 req 传递给 c++ 中的方法(Boost Beast 库)
- AMQP-CPP RabbitMQ 接收额外的符号 message.body() 比 message.size() 大
- char array[sizeof(Message)]; vs char* array = new char[sizeo
- Protobuf:无法在 message.pb.h 文件中打开包含文件 common.h
- 运行"OpenPose C++ API Tutorial - Example 3 - Body from image"失败
- 从 recv() 读取多个"message"
- Android Studio 3.2:cmake message()输出显示在哪里
- 对在协议缓冲区中使用 Message::P arseFromIstream 感到困惑
- 我正在尝试在Visual Studio 2013中编写我的第一个"Hello World"代码。为什么我会收到"IntelliSense: no operator message"和"error C2
- TBB parallel_for:为什么 Body::operator() 参数不是常量
- "Error: expected a '{' introducing a lambda body"尝试从地图<字符,字符中获取字符时> C++
- boost::system::error_code::message()引发了带有boost::asio套接字的访问冲突
- 在Message Box Husing手柄中显示DLL的路径
- "failed writing body & data" libcurl c++
- qSetMessagePattern( "%{file}(%{line}): %{message}" ) 输出"unkown(0)"
- 如何在 MSXML6 和 C++/Delphi 中检索非终止 xsl:message
- 重新定义strdup函数已经有一个Body
- N body simulation in C++