IM/MessageSystem/message_push/MessageMgr.cpp
2023-07-04 14:10:13 +08:00

44 lines
1014 B
C++

//
// 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());
}