diff --git a/MS/mmm/handler.cpp b/MS/mmm/handler.cpp index dfdda5e..36fd880 100644 --- a/MS/mmm/handler.cpp +++ b/MS/mmm/handler.cpp @@ -10,14 +10,23 @@ std::map handler::user_fd; void handler::resp(const std::shared_ptr& request, const std::shared_ptr& response) { - // 用户操作逻辑包 - 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(); + /// 用户操作逻辑包 + // 定义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; + bufferevent_write(request->m_bev, ret.c_str(), ret.size()); + delete resp; + } + /// 聊天消息包 + else { + handler::send(request, response); + } } void