写好了会话过期后自动重发
This commit is contained in:
@ -61,13 +61,13 @@ std::vector<std::string> BookStoreEngineClass::Execute(
|
|||||||
login_stack.pop();
|
login_stack.pop();
|
||||||
}
|
}
|
||||||
if (!is_server) BookStore_ZYM::shut_down = true;
|
if (!is_server) BookStore_ZYM::shut_down = true;
|
||||||
return is_server ? std::vector<std::string>({"[Empty]"})
|
return is_server ? std::vector<std::string>({""})
|
||||||
: std::vector<std::string>();
|
: std::vector<std::string>();
|
||||||
}
|
}
|
||||||
if (operation_map.find(head) == operation_map.end()) {
|
if (operation_map.find(head) == operation_map.end()) {
|
||||||
for (int i = 0; i < cmd.length(); i++)
|
for (int i = 0; i < cmd.length(); i++)
|
||||||
if (cmd[i] != ' ') return std::vector<std::string>({"Invalid"});
|
if (cmd[i] != ' ') return std::vector<std::string>({"Invalid"});
|
||||||
return is_server ? std::vector<std::string>({"[Empty]"})
|
return is_server ? std::vector<std::string>({""})
|
||||||
: std::vector<std::string>();
|
: std::vector<std::string>();
|
||||||
}
|
}
|
||||||
if (!login_stack.empty())
|
if (!login_stack.empty())
|
||||||
@ -78,77 +78,77 @@ std::vector<std::string> BookStoreEngineClass::Execute(
|
|||||||
switch (operation_map[head]) {
|
switch (operation_map[head]) {
|
||||||
case OperationType::__Ksu: {
|
case OperationType::__Ksu: {
|
||||||
auto ret = std::move(ExecuteSu(cmd, login_stack));
|
auto ret = std::move(ExecuteSu(cmd, login_stack));
|
||||||
if (is_server && ret.size() == 0) return std::vector<std::string>({"[Empty]"});
|
if (is_server && ret.size() == 0) return std::vector<std::string>({""});
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
case OperationType::__Klogout: {
|
case OperationType::__Klogout: {
|
||||||
auto ret = std::move(ExecuteLogout(cmd, login_stack));
|
auto ret = std::move(ExecuteLogout(cmd, login_stack));
|
||||||
if (is_server && ret.size() == 0) return std::vector<std::string>({"[Empty]"});
|
if (is_server && ret.size() == 0) return std::vector<std::string>({""});
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
case OperationType::__Kuseradd: {
|
case OperationType::__Kuseradd: {
|
||||||
auto ret = std::move(ExecuteUserAdd(cmd, login_stack));
|
auto ret = std::move(ExecuteUserAdd(cmd, login_stack));
|
||||||
if (is_server && ret.size() == 0) return std::vector<std::string>({"[Empty]"});
|
if (is_server && ret.size() == 0) return std::vector<std::string>({""});
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
case OperationType::__Kregister: {
|
case OperationType::__Kregister: {
|
||||||
auto ret = std::move(ExecuteRegister(cmd, login_stack));
|
auto ret = std::move(ExecuteRegister(cmd, login_stack));
|
||||||
if (is_server && ret.size() == 0) return std::vector<std::string>({"[Empty]"});
|
if (is_server && ret.size() == 0) return std::vector<std::string>({""});
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
case OperationType::__Kdelete: {
|
case OperationType::__Kdelete: {
|
||||||
auto ret = std::move(ExecuteDelete(cmd, login_stack));
|
auto ret = std::move(ExecuteDelete(cmd, login_stack));
|
||||||
if (is_server && ret.size() == 0) return std::vector<std::string>({"[Empty]"});
|
if (is_server && ret.size() == 0) return std::vector<std::string>({""});
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
case OperationType::__Kpasswd: {
|
case OperationType::__Kpasswd: {
|
||||||
auto ret = std::move(ExecutePasswd(cmd, login_stack));
|
auto ret = std::move(ExecutePasswd(cmd, login_stack));
|
||||||
if (is_server && ret.size() == 0) return std::vector<std::string>({"[Empty]"});
|
if (is_server && ret.size() == 0) return std::vector<std::string>({""});
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
case OperationType::__Kselect: {
|
case OperationType::__Kselect: {
|
||||||
auto ret = std::move(ExecuteSelect(cmd, login_stack));
|
auto ret = std::move(ExecuteSelect(cmd, login_stack));
|
||||||
if (is_server && ret.size() == 0) return std::vector<std::string>({"[Empty]"});
|
if (is_server && ret.size() == 0) return std::vector<std::string>({""});
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
case OperationType::__Kmodify: {
|
case OperationType::__Kmodify: {
|
||||||
auto ret = std::move(ExecuteMOdify(cmd, login_stack));
|
auto ret = std::move(ExecuteMOdify(cmd, login_stack));
|
||||||
if (is_server && ret.size() == 0) return std::vector<std::string>({"[Empty]"});
|
if (is_server && ret.size() == 0) return std::vector<std::string>({""});
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
case OperationType::__Kimport: {
|
case OperationType::__Kimport: {
|
||||||
auto ret = std::move(ExecuteImport(cmd, login_stack));
|
auto ret = std::move(ExecuteImport(cmd, login_stack));
|
||||||
if (is_server && ret.size() == 0) return std::vector<std::string>({"[Empty]"});
|
if (is_server && ret.size() == 0) return std::vector<std::string>({""});
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
case OperationType::__Kshow: {
|
case OperationType::__Kshow: {
|
||||||
ss >> head;
|
ss >> head;
|
||||||
if (head == "finance") goto dst_showfinance;
|
if (head == "finance") goto dst_showfinance;
|
||||||
auto ret = std::move(ExecuteShow(cmd, login_stack));
|
auto ret = std::move(ExecuteShow(cmd, login_stack));
|
||||||
if (is_server && ret.size() == 0) return std::vector<std::string>({"[Empty]"});
|
if (is_server && ret.size() == 0) return std::vector<std::string>({""});
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
case OperationType::__Kshowfinance: {
|
case OperationType::__Kshowfinance: {
|
||||||
dst_showfinance:;
|
dst_showfinance:;
|
||||||
auto ret = std::move(ExecuteShowFinance(cmd, login_stack));
|
auto ret = std::move(ExecuteShowFinance(cmd, login_stack));
|
||||||
if (is_server && ret.size() == 0) return std::vector<std::string>({"[Empty]"});
|
if (is_server && ret.size() == 0) return std::vector<std::string>({""});
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
case OperationType::__Kbuy: {
|
case OperationType::__Kbuy: {
|
||||||
auto ret = std::move(ExecuteBuy(cmd, login_stack));
|
auto ret = std::move(ExecuteBuy(cmd, login_stack));
|
||||||
if (is_server && ret.size() == 0) return std::vector<std::string>({"[Empty]"});
|
if (is_server && ret.size() == 0) return std::vector<std::string>({""});
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
case OperationType::__Kreport: {
|
case OperationType::__Kreport: {
|
||||||
// return std::vector<std::string>({"Invalid"});
|
// return std::vector<std::string>({"Invalid"});
|
||||||
auto ret = std::move(ExecuteReport(cmd, login_stack));
|
auto ret = std::move(ExecuteReport(cmd, login_stack));
|
||||||
if (is_server && ret.size() == 0) return std::vector<std::string>({"[Empty]"});
|
if (is_server && ret.size() == 0) return std::vector<std::string>({""});
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
case OperationType::__Klog: {
|
case OperationType::__Klog: {
|
||||||
// return std::vector<std::string>({"Invalid"});
|
// return std::vector<std::string>({"Invalid"});
|
||||||
auto ret = std::move(ExecuteLog(cmd, login_stack));
|
auto ret = std::move(ExecuteLog(cmd, login_stack));
|
||||||
if (is_server && ret.size() == 0) return std::vector<std::string>({"[Empty]"});
|
if (is_server && ret.size() == 0) return std::vector<std::string>({""});
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -48,7 +48,21 @@
|
|||||||
operation_count++;
|
operation_count++;
|
||||||
let raw_request="#Request "+session_token+" "+operation_count+" "+outhentication_key+"\n"+req;
|
let raw_request="#Request "+session_token+" "+operation_count+" "+outhentication_key+"\n"+req;
|
||||||
let raw_response=await RawRequest(raw_request);
|
let raw_response=await RawRequest(raw_request);
|
||||||
|
console.log("get raw_response:"+raw_response);
|
||||||
let line_numbers_of_res=parseInt(raw_response.split('\n')[0].split(' ')[2]);
|
let line_numbers_of_res=parseInt(raw_response.split('\n')[0].split(' ')[2]);
|
||||||
|
if(line_numbers_of_res==-1)
|
||||||
|
{
|
||||||
|
console.log("Session expired");
|
||||||
|
let tmp_channel=generateRandomString(10);
|
||||||
|
let ret=await RawRequest('#OpenSession '+tmp_channel);
|
||||||
|
operation_count=0;
|
||||||
|
session_token=ret.split('\n')[1].split(' ')[0];
|
||||||
|
outhentication_key=ret.split('\n')[1].split(' ')[1];
|
||||||
|
localStorage.setItem("session_token", session_token);
|
||||||
|
localStorage.setItem("outhentication_key", outhentication_key);
|
||||||
|
localStorage.setItem("operation_count", operation_count);
|
||||||
|
return await Request(req);
|
||||||
|
}
|
||||||
let response="";
|
let response="";
|
||||||
if(line_numbers_of_res>=1) response=raw_response.split('\n')[1];
|
if(line_numbers_of_res>=1) response=raw_response.split('\n')[1];
|
||||||
for(let i=0;i<line_numbers_of_res-1;i++){
|
for(let i=0;i<line_numbers_of_res-1;i++){
|
||||||
|
@ -84,7 +84,7 @@ backend.stdout.on('data', (data) => {
|
|||||||
else{
|
else{
|
||||||
res_block=line+'\n';
|
res_block=line+'\n';
|
||||||
to_be_collect=parseInt(line.split(' ')[2]);
|
to_be_collect=parseInt(line.split(' ')[2]);
|
||||||
if(to_be_collect==0)
|
if(to_be_collect<=0)
|
||||||
{
|
{
|
||||||
const substrings = res_block.trim().split('\n')[0].split(' ');
|
const substrings = res_block.trim().split('\n')[0].split(' ');
|
||||||
const session_token=substrings[0];
|
const session_token=substrings[0];
|
||||||
|
Reference in New Issue
Block a user