Rabbitmq:Envelope.message.body和Envelope.message.pool之间的差异

Rabbitmq:Envelope.message.body和Envelope.message.pool之间的差异,rabbitmq,amqp,node-amqp,Rabbitmq,Amqp,Node Amqp,我有一个基于nodejs的生产者,我使用的javascript库是,消费者是由实现的 从rabbitmq管理web,我可以看到消息被推送到队列中并传递给使用者。在使用者中,amqp\u consume\u message返回amqp-RESPONSE-NORMAL,但是,envelope.message.body为空。在这种情况下,如何调试它 以下是我使用rabbitmq消息的代码 amqp_rpc_reply_t reply; amqp_envelope_t envelope; amqp_ma

我有一个基于
nodejs
的生产者,我使用的javascript库是,消费者是由实现的

从rabbitmq管理web,我可以看到消息被推送到队列中并传递给使用者。在使用者中,
amqp\u consume\u message
返回
amqp-RESPONSE-NORMAL
,但是,
envelope.message.body
为空。在这种情况下,如何调试它

以下是我使用rabbitmq消息的代码

amqp_rpc_reply_t reply;
amqp_envelope_t envelope;
amqp_maybe_release_buffers(m_con); 
timeval m_time;
m_time.tv_sec = dwMilliseconds/1000;
m_time.tv_usec = (dwMilliseconds%1000)*1000;
reply = amqp_consume_message(m_con, &envelope, &m_time, 0);//time out 1 second
if (AMQP_RESPONSE_NORMAL != reply.reply_type)
{
    return false;
}

bool bRet = false;
amqp_bytes_t& rTheBody = envelope.message.body;
if (rTheBody.len > 0)
{
更新

经过进一步调查,我发现这些消息存储在envelope.message.pool.pages中。我想知道
message.body
message.pool

引用之间的区别

amqp\u message\t
对象的池字段(例如。,
envelope.message.pool
)是一个内存池,用于分配 信息。这是一个实现细节,不应该由 客户机代码(此实现细节取决于 改变)

信封.message.body.bytes
应为空的唯一原因 使用
AMQP\u响应\u NORMAL
返回值为如果消息正文长度为0 收到了

什么是amqp-c?该页面仅列出rabbitmq-c和一些amqp cpp项目。你能给这个项目一个链接吗?这是