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