44 lines
1014 B
C++
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());
|
|
}
|
|
|