全局API接口锁定机制
This commit is contained in:
parent
b354c61358
commit
e597f2969e
3
src/oss/blackapi.json
Normal file
3
src/oss/blackapi.json
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
[
|
||||||
|
|
||||||
|
]
|
41
src/setWs.ts
41
src/setWs.ts
@ -47,6 +47,12 @@ export async function createWs() {
|
|||||||
|
|
||||||
G.argv.serverType == 'msg' && G.config.corssWsUrl && await createWsClient();
|
G.argv.serverType == 'msg' && G.config.corssWsUrl && await createWsClient();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**每分钟刷新一次黑名单API接口 */
|
||||||
|
setInterval(()=>{
|
||||||
|
getBlackList();
|
||||||
|
},60000);
|
||||||
|
getBlackList();
|
||||||
}
|
}
|
||||||
|
|
||||||
function getWssFile() {
|
function getWssFile() {
|
||||||
@ -63,6 +69,21 @@ function getWssFile() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const writeList = ['hongdian/Get']
|
const writeList = ['hongdian/Get']
|
||||||
|
/**当前锁定的API接口 */
|
||||||
|
let blackApi = [];
|
||||||
|
|
||||||
|
async function getBlackList(){
|
||||||
|
let confFile = resolve(__dirname, 'oss/blackapi.json');
|
||||||
|
if (existsSync(confFile)) {
|
||||||
|
try {
|
||||||
|
blackApi = await JSON.parse(readFileSync(confFile, 'utf-8'));
|
||||||
|
} catch (e) {
|
||||||
|
blackApi = [];
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
blackApi = [];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function setWs(server: WsServer<ServiceType>) {
|
function setWs(server: WsServer<ServiceType>) {
|
||||||
|
|
||||||
@ -101,15 +122,17 @@ function setWs(server: WsServer<ServiceType>) {
|
|||||||
|
|
||||||
//执行 API 接口实现之前
|
//执行 API 接口实现之前
|
||||||
server.flows.preApiCallFlow.push(async call => {
|
server.flows.preApiCallFlow.push(async call => {
|
||||||
// 临时停服维护方案
|
//判断是否是被关闭的API
|
||||||
// let lng = {
|
if (blackApi.includes(call.service.name) || blackApi.includes("all")) {
|
||||||
// "zh-TW": "停服維護中,請等待!",
|
let lng = {
|
||||||
// "ko": "서버 점검 중, 잠시만 기다려 주세요.",
|
"zh-TW": "維護中,請等待",
|
||||||
// "ja": "サーバーメンテナンス中、しばらくお待ちください。",
|
"ko": "유지 보수 중, 대기 중",
|
||||||
// "en": "Server under maintenance. Please wait.",
|
"ja": "メンテナンス中ですので、お待ちください",
|
||||||
// }
|
"en": "Maintenance in progress, please wait",
|
||||||
// call.error("", {code: -1, message: lng[call.req.lng] || lng["ja"]})
|
}
|
||||||
// return null;
|
call.error("", {code: -1, message: lng[call.req.lng] || lng["ja"]})
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
//是否短时间内重复请求某个api
|
//是否短时间内重复请求某个api
|
||||||
// let timeIntervalLimit = call.service.conf?.timeIntervalLimit == undefined ? 500 : call.service.conf?.timeIntervalLimit;
|
// let timeIntervalLimit = call.service.conf?.timeIntervalLimit == undefined ? 500 : call.service.conf?.timeIntervalLimit;
|
||||||
|
Loading…
Reference in New Issue
Block a user