1. 程式人生 > >RabbitMQ第五課 使用技巧

RabbitMQ第五課 使用技巧

normal alt 關於 char ESS string 返回 而是 bit

1) C++ 獲取消息數據
amqp_rpc_reply_t ret;
timeval tvTimeout;
tvTimeout.tv_sec = 1;
tvTimeout.tv_usec = 0;
ret = amqp_consume_message(conn, &envelope, &valTimeOut, 0);

if (AMQP_RESPONSE_NORMAL == ret.reply_type)
{
std::string strAMQPMsg((char*)envelope.message.body.bytes, envelope.message.body.len);
}

誤區: std::string strAMQPMsg = char*)envelope.message.body.bytes 存在多余的數據

誤區: 沒有設置接收超時,而是直接傳遞NULL,導致函數進入死循環


2)發送消息的時候,返回錯誤信息:AMQP_STATUS_SOCKET_ERROR
AMQP_STATUS_SOCKET_ERROR = -0x0009, /**< A socket error occurred */
需要跟服務器Broker重新建立連接


3)確認數據是否已經發送成功

關於消費者就不用代碼來獲取消息了,直接在RabbitMQ Management點擊某個隊列的名字,然後Get Message(s) 即可獲取消息內容


RabbitMQ第五課 使用技巧