// // Created by dongl on 23-7-4. // #include "MessageMgr.h" #include "message_push/online/OnlineMessageMgr.h" #include "message_push/offline/OfflineMessageMgr.h" #include "IMDataPacket.h" session* MessageMgr::session = new class session(SESSION_SUPPORT_USER); MessageMgr::~MessageMgr() { delete session; } void MessageMgr::receive(const std::string &packet) { } void MessageMgr::send(const std::string &packet) { } // 接收 void MessageMgr::receive(const agreement_request& request) { // 查看用户是否在线 bool is_exist = session->is_user(request.m_body.account()); if (is_exist) { OnlineMessageMgr(); } else { OfflineMessageMgr(); } } // 发送 void MessageMgr::send(const agreement_response& response) { IMDataPacket imDataPacket(mp::MP_TYPE::MP_IM_NOTICE, response.m_notice->time(), (time_t)response.m_notice->message_id()); std::string packet = imDataPacket.packet(); bufferevent_write(response.m_bev, packet.c_str(), packet.size()); }