IM/MS/mmm/handler.cpp
dongl ba80c3954d 0510 15:15 gtest邮件可发送 创建session类 记录全局链接会话 时间轮记录session超时。
邮件验证码 可以发送 c端test 没写  验证验证码注册还未完成
2023-05-10 16:07:31 +08:00

67 lines
1.7 KiB
C++

//
// Created by dongl on 23-4-28.
//
#include <arpa/inet.h>
#include "handler.h"
#include "Response.h"
// handler 保有 session
session* handler::g_session = new session();
/// resp im
void handler::resp(const std::shared_ptr<agreement_request>& request,
const std::shared_ptr<agreement_response>& response) {
/// 用户操作逻辑包
// 定义100序号一下的为操作逻辑业务逻辑 请求与响应 +20 就能一一对应
// 例如 login包类型为 request login==0 那么响应这个登陆信息就是 response login==0+20
// 100 以上 为im msg 通讯的包类型序号
if (request->m_mph->mp_type() < 100) {
auto resp = new Response((mp::MP_TYPE) (request->m_mph->mp_type() + 20),
response->m_sri.sri_code(), response->m_sri.sri_username(),
response->m_sri.sri_msg(), response->m_sri.sri_token());
auto ret = resp->packet();
bufferevent_write(request->m_bev, ret.c_str(), ret.size());
delete resp;
}
/// 聊天消息包
else {
handler::send(request, response);
}
}
/// end resp im
// 聊天消息包
void handler::send(const std::shared_ptr<agreement_request> &request, const std::shared_ptr<agreement_response> &response) {
// 查询在线的用户信息
auto ret = g_session->find_user_fd(request->m_body.target());
// 用户信息结构体
userinfo *user;
if (ret.has_value()) {
user = ret->second;
}
}
/// end curr mem user curd
void
handler::ccp2p(const std::shared_ptr<agreement_request> &request, const std::shared_ptr<agreement_response> &response) {
}