| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- #include "../pch/pch.h"
- #include "CAliyunMNS.h"
- CAliyunMNS::CAliyunMNS(std::string queueName)
- {
- string endpoint;
- string accessId;
- string accessKey;
- string stsToken;
- endpoint = CConfigReader::getConfigValue("mns.accountendpoint");
- accessId = CConfigReader::getConfigValue("mns.accesskeyid");
- accessKey = CConfigReader::getConfigValue("mns.accesskeysecret");
- stsToken = "";
- m_mnsClient = new MNSClient(endpoint, accessId, accessKey, stsToken);
- try
- {
- queue = m_mnsClient->getQueueRef(queueName.c_str());
- //LOG_ERROR("queueName:" << queueName.c_str());
- //LOG_ERROR("endpoint:" << endpoint.c_str());
- //LOG_ERROR("accessId:" << accessId.c_str());
- //LOG_ERROR("accessKey:" << accessKey.c_str());
- //LOG_ERROR("stsToken:" << stsToken.c_str());
- is_init = true;
- }
- catch(MNSServerException& me)
- {
- //cout << "Request Failed: " << me.GetErrorCode().c_str() << endl;
- //LOG_INFO("Request Failed: " << me.GetErrorCode().c_str());
- is_init = false;
- return;
- }
- catch(MNSExceptionBase& mb)
- {
- //cout << "Request Failed: " << mb.ToString().c_str() << endl;
- //LOG_INFO("Request Failed: " << mb.ToString().c_str());
- is_init = false;
- return;
- }
- }
- CAliyunMNS::~CAliyunMNS()
- {
- if(m_mnsClient)
- {
- delete m_mnsClient;
- }
- }
- std::string CAliyunMNS::getMessage()
- {
- if(is_init == false)
- {
- return "error!";
- }
- try
- {
- Message message;
- queue->receiveMessage(30, message);
- std::string newMessage;
- bool res = CLewaimaiString::base64_decode(message.getMessageBody(), &newMessage);
- if(res == false)
- {
- LOG_INFO("base64解码失败!");
- return "error!";
- }
- queue->deleteMessage(message.getReceiptHandle());
- return newMessage;
- }
- catch(MNSServerException& me)
- {
- cout << "Request Failed: " << me.GetErrorCode().c_str() << endl;
- //LOG_DEBUG("Request Failed: " << me.GetErrorCode().c_str());
- return "error!";
- }
- catch(MNSExceptionBase& mb)
- {
- cout << "Request Failed: " << mb.ToString().c_str() << endl;
- //LOG_DEBUG("Request Failed: " << mb.ToString().c_str());
- return "error!";
- }
- }
- void CAliyunMNS::sendMessage(std::string message)
- {
- std::string newMessage;
- CLewaimaiString::base64_encode(message, &newMessage);
- SendMessageResponse smResp;
- queue->sendMessage(newMessage.c_str(), smResp);
- }
- bool CAliyunMNS::getIsInit()
- {
- return is_init;
- }
|