响应返回的包 缺值已修改
This commit is contained in:
parent
431416c072
commit
c4a100745d
@ -10,14 +10,19 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// 定义一个宏来包含需要用到的枚举值
|
||||
#define MY_ENUM_VALUES \
|
||||
X(MP_REQUEST_LOGIN) \
|
||||
X(MP_REQUEST_LOGOUT) \
|
||||
X(MP_REQUEST_REGISTER) \
|
||||
X(MP_RESPONSE_LOGIN) \
|
||||
X(MP_RESPONSE_LOGOUT) \
|
||||
X(MP_RESPONSE_REGISTER)
|
||||
X(MP_REQUEST_CODE) \
|
||||
X(MP_REQUEST_FRIENDS) \
|
||||
X(MP_REQUEST_GROUPS)
|
||||
|
||||
#if 0
|
||||
// method 1
|
||||
|
@ -9,6 +9,16 @@ Response::Response(mp::MP_TYPE type, mp::MP_SUB_TYPE subType, const std::string
|
||||
Sri(subType, username, msg, token) {
|
||||
}
|
||||
|
||||
Response::Response(mp::MP_TYPE type, mp::MP_SUB_TYPE subType,
|
||||
uint64_t account, const std::string &username,
|
||||
const std::string &email, uint64_t phone,
|
||||
const std::string &msg, const std::string &token,
|
||||
const std::string & data) :
|
||||
Mph(type),
|
||||
Sri(subType, account, username, email, phone, msg, token, data) {
|
||||
|
||||
}
|
||||
|
||||
Response::~Response() {
|
||||
delete response;
|
||||
}
|
||||
|
@ -15,6 +15,11 @@
|
||||
class Response : public Mph, Sri{
|
||||
public:
|
||||
Response(mp::MP_TYPE type, mp::MP_SUB_TYPE subType, const std::string &username, const std::string &msg, const std::string &token);
|
||||
Response(mp::MP_TYPE type, mp::MP_SUB_TYPE subType,
|
||||
uint64_t account, const std::string &username,
|
||||
const std::string &email, uint64_t phone,
|
||||
const std::string &msg, const std::string &token,
|
||||
const std::string & data);
|
||||
|
||||
~Response() override;
|
||||
|
||||
|
21
MP/Sri.h
21
MP/Sri.h
@ -10,14 +10,31 @@
|
||||
|
||||
class Sri {
|
||||
public:
|
||||
Sri(mp::MP_SUB_TYPE code, const std::string& username, const std::string& msg, const std::string& token) {
|
||||
Sri(mp::MP_SUB_TYPE subType, const std::string& username, const std::string& msg, const std::string& token) {
|
||||
sri = new mp::sri();
|
||||
sri->set_subcommand(code);
|
||||
sri->set_subcommand(subType);
|
||||
sri->set_msg(msg);
|
||||
sri->set_token(token);
|
||||
sri->set_username(username);
|
||||
}
|
||||
|
||||
Sri(mp::MP_SUB_TYPE subType,
|
||||
uint64_t account, const std::string &username,
|
||||
const std::string &email, uint64_t phone,
|
||||
const std::string &msg, const std::string &token,
|
||||
const std::string & data) {
|
||||
|
||||
sri = new mp::sri();
|
||||
sri->set_subcommand(subType);
|
||||
sri->set_account(account);
|
||||
sri->set_username(username);
|
||||
sri->set_email(email);
|
||||
sri->set_phone(phone);
|
||||
sri->set_msg(msg);
|
||||
sri->set_token(token);
|
||||
sri->set_data(data);
|
||||
}
|
||||
|
||||
Sri() {}
|
||||
|
||||
virtual ~Sri() {
|
||||
|
@ -8,7 +8,7 @@ enum MP_TYPE {
|
||||
MP_REQUEST_REGISTER = 2; // 注册
|
||||
MP_REQUEST_CODE = 3; // 请求验证码
|
||||
MP_REQUEST_FRIENDS = 4; // 好友相关操作
|
||||
MP_REQUEST_GROUPS = 5; // 群相关操作
|
||||
MP_REQUEST_GROUPS = 5; // 群相关操作
|
||||
|
||||
|
||||
// 20 - 39
|
||||
|
@ -22,11 +22,19 @@ agreement_response::~agreement_response() {}
|
||||
void agreement_response::set(mp::sri* sri, bufferevent* bev) {
|
||||
auto resp = std::make_shared<mp::response>(mp::response());
|
||||
|
||||
std::cout << "set" << sri->account() << std::endl;
|
||||
|
||||
m_sri = resp->sri();
|
||||
m_sri.set_subcommand(sri->subcommand());
|
||||
m_sri.set_account(sri->account());
|
||||
m_sri.set_username(sri->username());
|
||||
m_sri.set_msg(sri->msg());
|
||||
m_sri.set_subcommand(sri->subcommand());
|
||||
m_sri.set_token(sri->token());
|
||||
m_sri.set_data(sri->data());
|
||||
m_sri.set_email(sri->email());
|
||||
m_sri.set_phone(sri->phone());
|
||||
|
||||
std::cout << "set" << m_sri.account() << std::endl;
|
||||
|
||||
m_bev = bev;
|
||||
}
|
||||
|
@ -16,9 +16,17 @@ void handler::resp(const std::shared_ptr<agreement_request>& request,
|
||||
// 例如 login包类型为 request login==0 那么响应这个登陆信息就是 response login==0+20
|
||||
// 200 以上 为im msg 通讯的包类型序号
|
||||
if (request->m_mph->mp_type() < 200) {
|
||||
// auto resp = new Response((mp::MP_TYPE) (request->m_mph->mp_type() + 20),
|
||||
// response->m_sri.subcommand(), response->m_sri.username(),
|
||||
// response->m_sri.msg(), response->m_sri.token());
|
||||
|
||||
auto resp = new Response((mp::MP_TYPE) (request->m_mph->mp_type() + 20),
|
||||
response->m_sri.subcommand(), response->m_sri.username(),
|
||||
response->m_sri.msg(), response->m_sri.token());
|
||||
response->m_sri.subcommand(),
|
||||
response->m_sri.account(), response->m_sri.username(),
|
||||
response->m_sri.email(), response->m_sri.phone(),
|
||||
response->m_sri.msg(), response->m_sri.token(),
|
||||
response->m_sri.data());
|
||||
|
||||
auto ret = resp->packet();
|
||||
|
||||
bufferevent_write(request->m_bev, ret.c_str(), ret.size());
|
||||
|
@ -9,6 +9,7 @@ void UserProveController::run(std::shared_ptr<agreement_request> request, std::s
|
||||
if (request->m_mph->mp_type() == mp::MP_REQUEST_LOGIN) {
|
||||
auto sri = service.login(request->m_body.subcommand(),
|
||||
request->m_body.account(), request->m_body.password());
|
||||
|
||||
response->set(sri, request->m_bev);
|
||||
|
||||
// 登陆的用户 直接在全局 注册 在map中 直接存入服务器内存
|
||||
|
@ -26,9 +26,13 @@ protected:
|
||||
protected:
|
||||
virtual void sri_clear(){
|
||||
sri->clear_subcommand();
|
||||
sri->clear_msg();
|
||||
sri->clear_token();
|
||||
sri->clear_account();
|
||||
sri->clear_username();
|
||||
sri->clear_email();
|
||||
sri->clear_phone();
|
||||
sri->clear_token();
|
||||
sri->clear_msg();
|
||||
sri->clear_data();
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -9,11 +9,12 @@ UserFriendsService::~UserFriendsService() {}
|
||||
// 好友群组 添加删除 任务组 决策接口
|
||||
mp::sri *UserFriendsService::friendImProve(mp::body* body) {
|
||||
sri_clear();
|
||||
if (body->target() == 0 || body->source() == 0) {
|
||||
printf("请求数据有缺\n");
|
||||
sri->set_msg("请求数据有缺");
|
||||
return sri;
|
||||
}
|
||||
// if (body->target() == 0 || body->source() == 0) {
|
||||
// printf("请求数据有缺\n");
|
||||
// sri->set_subcommand(mp::MP_SUB_TYPE::MP_GET_FAIL);
|
||||
// sri->set_msg("请求数据有缺");
|
||||
// return sri;
|
||||
// }
|
||||
|
||||
auto subcommand = body->subcommand();
|
||||
|
||||
@ -29,6 +30,11 @@ mp::sri *UserFriendsService::friendImProve(mp::body* body) {
|
||||
else if (subcommand == mp::MP_SUB_TYPE::MP_REMOVE_FRIEND) {
|
||||
|
||||
}
|
||||
// 获取好友列表
|
||||
else if (subcommand == mp::MP_SUB_TYPE::MP_GET_FRIENDS) {
|
||||
// 此时包传来的 是 客户端 取到用户的帐号
|
||||
FetchUserFriends(strtol(body->account().c_str(), nullptr, 0), body->data());
|
||||
}
|
||||
|
||||
return sri;
|
||||
}
|
||||
@ -72,18 +78,17 @@ mp::sri* UserFriendsService::add_contact_person(mp::body *body) {
|
||||
return sri;
|
||||
}
|
||||
|
||||
mp::sri *UserFriendsService::FetchUserFriend(uint64_t account, const std::string &data) {
|
||||
void UserFriendsService::FetchUserFriends(uint64_t account, const std::string &data) {
|
||||
sri_clear();
|
||||
uint8_t page_begin = data.c_str()[0];
|
||||
uint8_t page_end = data.c_str()[1];
|
||||
|
||||
auto friends = userFriendsDb.select_friends_all(account);
|
||||
if (friends.has_value())
|
||||
if (friends.has_value()) {
|
||||
sri->set_data(friends.value());
|
||||
sri->set_msg("好友获取成功");
|
||||
sri->set_subcommand(mp::MP_SUB_TYPE::MP_ADD_SUCCESS);
|
||||
|
||||
return sri;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -16,7 +16,7 @@ public:
|
||||
public:
|
||||
// 唯一对开接口
|
||||
mp::sri* friendImProve(mp::body* body);
|
||||
mp::sri* FetchUserFriend(uint64_t account, const std::string& data);
|
||||
void FetchUserFriends(uint64_t account, const std::string& data);
|
||||
|
||||
private:
|
||||
mp::sri* add_contact_person(mp::body* body);
|
||||
|
Loading…
x
Reference in New Issue
Block a user