写好了会话过期后自动重发

This commit is contained in:
2023-12-15 09:42:51 +00:00
parent be33f6f29a
commit d2e6f2ca29
3 changed files with 31 additions and 17 deletions

View File

@ -61,13 +61,13 @@ std::vector<std::string> BookStoreEngineClass::Execute(
login_stack.pop();
}
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>();
}
if (operation_map.find(head) == operation_map.end()) {
for (int i = 0; i < cmd.length(); i++)
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>();
}
if (!login_stack.empty())
@ -78,77 +78,77 @@ std::vector<std::string> BookStoreEngineClass::Execute(
switch (operation_map[head]) {
case OperationType::__Ksu: {
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;
}
case OperationType::__Klogout: {
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;
}
case OperationType::__Kuseradd: {
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;
}
case OperationType::__Kregister: {
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;
}
case OperationType::__Kdelete: {
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;
}
case OperationType::__Kpasswd: {
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;
}
case OperationType::__Kselect: {
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;
}
case OperationType::__Kmodify: {
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;
}
case OperationType::__Kimport: {
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;
}
case OperationType::__Kshow: {
ss >> head;
if (head == "finance") goto dst_showfinance;
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;
}
case OperationType::__Kshowfinance: {
dst_showfinance:;
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;
}
case OperationType::__Kbuy: {
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;
}
case OperationType::__Kreport: {
// return std::vector<std::string>({"Invalid"});
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;
}
case OperationType::__Klog: {
// return std::vector<std::string>({"Invalid"});
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;
}
}

View File

@ -48,7 +48,21 @@
operation_count++;
let raw_request="#Request "+session_token+" "+operation_count+" "+outhentication_key+"\n"+req;
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]);
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="";
if(line_numbers_of_res>=1) response=raw_response.split('\n')[1];
for(let i=0;i<line_numbers_of_res-1;i++){

View File

@ -84,7 +84,7 @@ backend.stdout.on('data', (data) => {
else{
res_block=line+'\n';
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 session_token=substrings[0];