Skip to content

Commit 544e554

Browse files
committed
modify:register and delete protocol use http instead
1 parent ed34e76 commit 544e554

File tree

16 files changed

+375
-135
lines changed

16 files changed

+375
-135
lines changed

XEngine_Source/MQCore_ProtocolModule/MQCore_ProtocolModule.def

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ EXPORTS
44
Protocol_GetLastError
55

66
ProtocolModule_Packet_Common
7+
ProtocolModule_Packet_HTTPCommon
78
ProtocolModule_Packet_MQNumber
89
ProtocolModule_Packet_PassAuth
910
ProtocolModule_Packet_PassUser
@@ -17,4 +18,5 @@ EXPORTS
1718
ProtocolModule_Packet_UNReadInsert
1819
ProtocolModule_Packet_UNReadDelete
1920

20-
ProtocolModule_Parse_Websocket
21+
ProtocolModule_Parse_Websocket
22+
ProtocolModule_Parse_Register

XEngine_Source/MQCore_ProtocolModule/ProtocolModule_Packet/ProtocolModule_Packet.cpp

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,60 @@ bool CProtocolModule_Packet::ProtocolModule_Packet_Common(int nNetType, XENGINE_
8282
return true;
8383
}
8484
/********************************************************************
85+
函数名称:ProtocolModule_Packet_HTTPCommon
86+
函数功能:HTTP通用消息打包
87+
参数.一:ptszMsgBuffer
88+
In/Out:Out
89+
类型:字符指针
90+
可空:N
91+
意思:导出包装好的缓冲区
92+
参数.二:pInt_MsgLen
93+
In/Out:Out
94+
类型:整数型指针
95+
可空:N
96+
意思:输出包装大小
97+
参数.三:nHTTPCode
98+
In/Out:In
99+
类型:整数型
100+
可空:Y
101+
意思:输入返回的code
102+
参数.四:lpszMSGBuffer
103+
In/Out:In
104+
类型:常量字符指针
105+
可空:N
106+
意思:输入返回的消息
107+
返回值
108+
类型:逻辑型
109+
意思:是否成功
110+
备注:
111+
*********************************************************************/
112+
bool CProtocolModule_Packet::ProtocolModule_Packet_HTTPCommon(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, int nHTTPCode /* = 0 */, LPCXSTR lpszMSGBuffer /* = NULL */)
113+
{
114+
Protocol_IsErrorOccur = false;
115+
116+
if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen))
117+
{
118+
Protocol_IsErrorOccur = true;
119+
Protocol_dwErrorCode = ERROR_MQ_MODULE_PROTOCOL_PARAMENT;
120+
return false;
121+
}
122+
Json::Value st_JsonRoot;
123+
124+
st_JsonRoot["code"] = nHTTPCode;
125+
if (NULL == lpszMSGBuffer)
126+
{
127+
st_JsonRoot["msg"] = "success";
128+
}
129+
else
130+
{
131+
st_JsonRoot["msg"] = lpszMSGBuffer;
132+
}
133+
134+
*pInt_MsgLen = st_JsonRoot.toStyledString().length();
135+
memcpy(ptszMsgBuffer, st_JsonRoot.toStyledString().c_str(), *pInt_MsgLen);
136+
return true;
137+
}
138+
/********************************************************************
85139
函数名称:ProtocolModule_Packet_MQNumber
86140
函数功能:获取序列打包函数
87141
参数.一:pSt_ProtocolHdr

XEngine_Source/MQCore_ProtocolModule/ProtocolModule_Packet/ProtocolModule_Packet.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ class CProtocolModule_Packet
2626
~CProtocolModule_Packet();
2727
public:
2828
bool ProtocolModule_Packet_Common(int nNetType, XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, XENGINE_PROTOCOL_XMQ* pSt_MQProtocol, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer = NULL, int nMsgLen = 0);
29+
bool ProtocolModule_Packet_HTTPCommon(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, int nHTTPCode = 0, LPCXSTR lpszMSGBuffer = NULL);
2930
bool ProtocolModule_Packet_MQNumber(XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, XENGINE_MQNUMBER* pSt_MQNumber, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, int nNetType);
3031
bool ProtocolModule_Packet_PassAuth(XENGINE_PROTOCOL_USERAUTH* pSt_ProtocolAuth, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, int nCode);
3132
bool ProtocolModule_Packet_PassUser(XENGINE_PROTOCOL_USERINFO* pSt_ProtocolUser, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, int nCode);

XEngine_Source/MQCore_ProtocolModule/ProtocolModule_Parse/ProtocolModule_Parse.cpp

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,4 +219,87 @@ bool CProtocolModule_Parse::ProtocolModule_Parse_Websocket(LPCXSTR lpszMsgBuffer
219219
}
220220
}
221221
return true;
222+
}
223+
/********************************************************************
224+
函数名称:ProtocolModule_Parse_Register
225+
函数功能:解析用户信息
226+
参数.一:lpszMsgBuffer
227+
In/Out:In
228+
类型:常量字符指针
229+
可空:N
230+
意思:输入要解析的缓冲区
231+
参数.二:nMsgLen
232+
In/Out:In
233+
类型:整数型
234+
可空:N
235+
意思:输入要解析的大小
236+
参数.三:pSt_UserInfo
237+
In/Out:Out
238+
类型:数据结构指针
239+
可空:N
240+
意思:输出解析的数据
241+
返回值
242+
类型:逻辑型
243+
意思:是否成功
244+
备注:
245+
*********************************************************************/
246+
bool CProtocolModule_Parse::ProtocolModule_Parse_Register(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_PROTOCOL_USERINFO* pSt_UserInfo)
247+
{
248+
Protocol_IsErrorOccur = false;
249+
250+
if ((NULL == lpszMsgBuffer) || (NULL == pSt_UserInfo))
251+
{
252+
Protocol_IsErrorOccur = true;
253+
Protocol_dwErrorCode = ERROR_MQ_MODULE_PROTOCOL_PARAMENT;
254+
return false;
255+
}
256+
Json::Value st_JsonRoot;
257+
JSONCPP_STRING st_JsonError;
258+
Json::CharReaderBuilder st_ReaderBuilder;
259+
260+
std::unique_ptr<Json::CharReader> const pSt_JsonReader(st_ReaderBuilder.newCharReader());
261+
if (!pSt_JsonReader->parse(lpszMsgBuffer, lpszMsgBuffer + nMsgLen, &st_JsonRoot, &st_JsonError))
262+
{
263+
Protocol_IsErrorOccur = true;
264+
Protocol_dwErrorCode = ERROR_MQ_MODULE_PROTOCOL_PARSE;
265+
return false;
266+
}
267+
Json::Value st_JsonProtocol = st_JsonRoot["st_UserInfo"];
268+
if (!st_JsonProtocol["tszUserName"].isNull())
269+
{
270+
_tcsxcpy(pSt_UserInfo->tszUserName, st_JsonProtocol["tszUserName"].asCString());
271+
}
272+
if (!st_JsonProtocol["tszUserPass"].isNull())
273+
{
274+
_tcsxcpy(pSt_UserInfo->tszUserPass, st_JsonProtocol["tszUserPass"].asCString());
275+
}
276+
if (!st_JsonProtocol["tszEMailAddr"].isNull())
277+
{
278+
_tcsxcpy(pSt_UserInfo->tszEMailAddr, st_JsonProtocol["tszEMailAddr"].asCString());
279+
}
280+
if (!st_JsonProtocol["tszLoginTime"].isNull())
281+
{
282+
_tcsxcpy(pSt_UserInfo->tszLoginTime, st_JsonProtocol["tszLoginTime"].asCString());
283+
}
284+
if (!st_JsonProtocol["tszCreateTime"].isNull())
285+
{
286+
_tcsxcpy(pSt_UserInfo->tszCreateTime, st_JsonProtocol["tszCreateTime"].asCString());
287+
}
288+
if (!st_JsonProtocol["nPhoneNumber"].isNull())
289+
{
290+
pSt_UserInfo->nPhoneNumber = st_JsonProtocol["nPhoneNumber"].asInt64();
291+
}
292+
if (!st_JsonProtocol["nIDNumber"].isNull())
293+
{
294+
pSt_UserInfo->nIDNumber = st_JsonProtocol["nIDNumber"].asInt64();
295+
}
296+
if (!st_JsonProtocol["nUserLevel"].isNull())
297+
{
298+
pSt_UserInfo->nUserLevel = st_JsonProtocol["nUserLevel"].asInt();
299+
}
300+
if (!st_JsonProtocol["nUserState"].isNull())
301+
{
302+
pSt_UserInfo->nUserState = st_JsonProtocol["nUserState"].asInt();
303+
}
304+
return true;
222305
}

XEngine_Source/MQCore_ProtocolModule/ProtocolModule_Parse/ProtocolModule_Parse.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ class CProtocolModule_Parse
1818
~CProtocolModule_Parse();
1919
public:
2020
bool ProtocolModule_Parse_Websocket(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, XCHAR* ptszMsgBuffer, int* pInt_MsgLen);
21+
bool ProtocolModule_Parse_Register(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_PROTOCOL_USERINFO* pSt_UserInfo);
2122
protected:
2223
private:
2324
};

XEngine_Source/MQCore_ProtocolModule/Protocol_Define.h

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,35 @@ extern "C" XLONG Protocol_GetLastError(int* pInt_SysError = NULL);
6262
*********************************************************************/
6363
extern "C" bool ProtocolModule_Packet_Common(int nNetType, XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, XENGINE_PROTOCOL_XMQ* pSt_MQProtocol, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer = NULL, int nMsgLen = 0);
6464
/********************************************************************
65+
函数名称:ProtocolModule_Packet_HTTPCommon
66+
函数功能:HTTP通用消息打包
67+
参数.一:ptszMsgBuffer
68+
In/Out:Out
69+
类型:字符指针
70+
可空:N
71+
意思:导出包装好的缓冲区
72+
参数.二:pInt_MsgLen
73+
In/Out:Out
74+
类型:整数型指针
75+
可空:N
76+
意思:输出包装大小
77+
参数.三:nHTTPCode
78+
In/Out:In
79+
类型:整数型
80+
可空:Y
81+
意思:输入返回的code
82+
参数.四:lpszMSGBuffer
83+
In/Out:In
84+
类型:常量字符指针
85+
可空:N
86+
意思:输入返回的消息
87+
返回值
88+
类型:逻辑型
89+
意思:是否成功
90+
备注:
91+
*********************************************************************/
92+
extern "C" bool ProtocolModule_Packet_HTTPCommon(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, int nHTTPCode = 0, LPCXSTR lpszMSGBuffer = NULL);
93+
/********************************************************************
6594
函数名称:ProtocolModule_Packet_MQNumber
6695
函数功能:获取序列打包函数
6796
参数.一:pSt_ProtocolHdr
@@ -435,4 +464,28 @@ extern "C" bool ProtocolModule_Packet_UNReadDelete(XHANDLE xhToken, XCHAR* ptszM
435464
意思:是否成功
436465
备注:
437466
*********************************************************************/
438-
extern "C" bool ProtocolModule_Parse_Websocket(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_PROTOCOLHDR * pSt_ProtocolHdr = NULL, XCHAR *ptszMsgBuffer = NULL, int* pInt_MsgLen = NULL);
467+
extern "C" bool ProtocolModule_Parse_Websocket(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_PROTOCOLHDR * pSt_ProtocolHdr = NULL, XCHAR *ptszMsgBuffer = NULL, int* pInt_MsgLen = NULL);
468+
/********************************************************************
469+
函数名称:ProtocolModule_Parse_Register
470+
函数功能:解析用户信息
471+
参数.一:lpszMsgBuffer
472+
In/Out:In
473+
类型:常量字符指针
474+
可空:N
475+
意思:输入要解析的缓冲区
476+
参数.二:nMsgLen
477+
In/Out:In
478+
类型:整数型
479+
可空:N
480+
意思:输入要解析的大小
481+
参数.三:pSt_UserInfo
482+
In/Out:Out
483+
类型:数据结构指针
484+
可空:N
485+
意思:输出解析的数据
486+
返回值
487+
类型:逻辑型
488+
意思:是否成功
489+
备注:
490+
*********************************************************************/
491+
extern "C" bool ProtocolModule_Parse_Register(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_PROTOCOL_USERINFO* pSt_UserInfo);

XEngine_Source/MQCore_ProtocolModule/pch.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ extern "C" bool ProtocolModule_Packet_Common(int nNetType, XENGINE_PROTOCOLHDR *
3535
{
3636
return m_ProtocolPacket.ProtocolModule_Packet_Common(nNetType, pSt_ProtocolHdr, pSt_MQProtocol, ptszMsgBuffer, pInt_MsgLen, lpszMsgBuffer, nMsgLen);
3737
}
38+
extern "C" bool ProtocolModule_Packet_HTTPCommon(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, int nHTTPCode, LPCXSTR lpszMSGBuffer)
39+
{
40+
return m_ProtocolPacket.ProtocolModule_Packet_HTTPCommon(ptszMsgBuffer, pInt_MsgLen, nHTTPCode, lpszMSGBuffer);
41+
}
3842
extern "C" bool ProtocolModule_Packet_MQNumber(XENGINE_PROTOCOLHDR * pSt_ProtocolHdr, XENGINE_MQNUMBER * pSt_MQNumber, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, int nNetType)
3943
{
4044
return m_ProtocolPacket.ProtocolModule_Packet_MQNumber(pSt_ProtocolHdr, pSt_MQNumber, ptszMsgBuffer, pInt_MsgLen, nNetType);
@@ -89,4 +93,8 @@ extern "C" bool ProtocolModule_Packet_UNReadDelete(XHANDLE xhToken, XCHAR * ptsz
8993
extern "C" bool ProtocolModule_Parse_Websocket(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_PROTOCOLHDR * pSt_ProtocolHdr, XCHAR *ptszMsgBuffer, int* pInt_MsgLen)
9094
{
9195
return m_ProtocolParse.ProtocolModule_Parse_Websocket(lpszMsgBuffer, nMsgLen, pSt_ProtocolHdr, ptszMsgBuffer, pInt_MsgLen);
96+
}
97+
extern "C" bool ProtocolModule_Parse_Register(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_PROTOCOL_USERINFO* pSt_UserInfo)
98+
{
99+
return m_ProtocolParse.ProtocolModule_Parse_Register(lpszMsgBuffer, nMsgLen, pSt_UserInfo);
92100
}

0 commit comments

Comments
 (0)