🎈 perf(加密): 推送的kv不每次加密而是缓存
This commit is contained in:
@@ -11,6 +11,7 @@ import { deleteActivities, loadActivities, saveActivitiesToGroup, updateActiviti
|
||||
import { saveActivityMemory } from '../../../services/log/memoryLogService';
|
||||
import { setApiIsClose } from '../../../services/chatService';
|
||||
import { setHiddenData } from '../../../services/dataService';
|
||||
import { setKvToMemory } from '../../../services/pushService';
|
||||
|
||||
export default function (app: Application) {
|
||||
new HandlerService(app, {});
|
||||
@@ -157,4 +158,12 @@ export class ActivityRemote {
|
||||
errlogger.error(`remote ${__filename} \n ${e.stack}`);
|
||||
}
|
||||
}
|
||||
|
||||
public async setKvToMemory(originK: string, originV: string, aesKey: string, aesIV: string, now: number) {
|
||||
try {
|
||||
setKvToMemory(originK, originV, aesKey, aesIV, now);
|
||||
} catch(e) {
|
||||
errlogger.error(`remote ${__filename} \n ${e.stack}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5,6 +5,7 @@ import { setApiIsClose } from '../../../services/chatService';
|
||||
import { setHiddenData } from '../../../services/dataService';
|
||||
import { getServerMainten, setServerMainten, stopServerMainten } from '../../../services/gmService';
|
||||
import { savePvpSeasonMemory } from '../../../services/log/memoryLogService';
|
||||
import { setKvToMemory } from '../../../services/pushService';
|
||||
import { taflush } from '../../../services/sdkService';
|
||||
import { setPvpSeasonNum, setPvpSettleSeasonNum } from '../../../services/timeTaskService';
|
||||
import { errlogger } from '../../../util/logger';
|
||||
@@ -164,4 +165,12 @@ export class BattleRemote {
|
||||
errlogger.error(`remote ${__filename} \n ${e.stack}`);
|
||||
}
|
||||
}
|
||||
|
||||
public async setKvToMemory(originK: string, originV: string, aesKey: string, aesIV: string, now: number) {
|
||||
try {
|
||||
setKvToMemory(originK, originV, aesKey, aesIV, now);
|
||||
} catch(e) {
|
||||
errlogger.error(`remote ${__filename} \n ${e.stack}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3,7 +3,7 @@ import { reloadResources } from '../../../pubUtils/data';
|
||||
import { _checkFilterWords, taflush } from '../../../services/sdkService';
|
||||
import { getServerMainten, setServerMainten, stopServerMainten } from '../../../services/gmService';
|
||||
import { errlogger } from '../../../util/logger';
|
||||
import { addUserToChannel, sendMessageToChannel, sendMessgeToChannelByBatch } from '../../../services/pushService';
|
||||
import { addUserToChannel, sendMessageToChannel, sendMessgeToChannelByBatch, setKvToMemory } from '../../../services/pushService';
|
||||
import { setApiIsClose } from '../../../services/chatService';
|
||||
import { setHiddenData } from '../../../services/dataService';
|
||||
|
||||
@@ -165,4 +165,12 @@ export class ChatRemote {
|
||||
errlogger.error(`remote ${__filename} \n ${e.stack}`);
|
||||
}
|
||||
}
|
||||
|
||||
public async setKvToMemory(originK: string, originV: string, aesKey: string, aesIV: string, now: number) {
|
||||
try {
|
||||
setKvToMemory(originK, originV, aesKey, aesIV, now);
|
||||
} catch(e) {
|
||||
errlogger.error(`remote ${__filename} \n ${e.stack}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ import { savePvpSeasonMemory } from '../../../services/log/memoryLogService';
|
||||
import { setApiIsClose } from '../../../services/chatService';
|
||||
import { setPvpSeasonNum, setPvpSettleSeasonNum } from '../../../services/timeTaskService';
|
||||
import { setHiddenData } from '../../../services/dataService';
|
||||
import { setKvToMemory } from '../../../services/pushService';
|
||||
|
||||
export default function (app: Application) {
|
||||
new HandlerService(app, {});
|
||||
@@ -193,4 +194,12 @@ export class ConnectorRemote {
|
||||
errlogger.error(`remote ${__filename} \n ${e.stack}`);
|
||||
}
|
||||
}
|
||||
|
||||
public async setKvToMemory(originK: string, originV: string, aesKey: string, aesIV: string, now: number) {
|
||||
try {
|
||||
setKvToMemory(originK, originV, aesKey, aesIV, now);
|
||||
} catch(e) {
|
||||
errlogger.error(`remote ${__filename} \n ${e.stack}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import { getServerMainten, setServerMainten, stopServerMainten } from '../../../
|
||||
import { errlogger } from '../../../util/logger';
|
||||
import { setApiIsClose } from '../../../services/chatService';
|
||||
import { setHiddenData } from '../../../services/dataService';
|
||||
import { setKvToMemory } from '../../../services/pushService';
|
||||
|
||||
export default function (app: Application) {
|
||||
new HandlerService(app, {});
|
||||
@@ -83,4 +84,12 @@ export class GuildRemote {
|
||||
errlogger.error(`remote ${__filename} \n ${e.stack}`);
|
||||
}
|
||||
}
|
||||
|
||||
public async setKvToMemory(originK: string, originV: string, aesKey: string, aesIV: string, now: number) {
|
||||
try {
|
||||
setKvToMemory(originK, originV, aesKey, aesIV, now);
|
||||
} catch(e) {
|
||||
errlogger.error(`remote ${__filename} \n ${e.stack}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6,6 +6,7 @@ import { taflush } from '../../../services/sdkService';
|
||||
import { errlogger } from '../../../util/logger';
|
||||
import { setApiIsClose } from '../../../services/chatService';
|
||||
import { setHiddenData } from '../../../services/dataService';
|
||||
import { setKvToMemory } from '../../../services/pushService';
|
||||
|
||||
export default function (app: Application) {
|
||||
new HandlerService(app, {});
|
||||
@@ -95,4 +96,12 @@ export class OrderRemote {
|
||||
errlogger.error(`remote ${__filename} \n ${e.stack}`);
|
||||
}
|
||||
}
|
||||
|
||||
public async setKvToMemory(originK: string, originV: string, aesKey: string, aesIV: string, now: number) {
|
||||
try {
|
||||
setKvToMemory(originK, originV, aesKey, aesIV, now);
|
||||
} catch(e) {
|
||||
errlogger.error(`remote ${__filename} \n ${e.stack}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -9,6 +9,7 @@ import { errlogger } from '../../../util/logger';
|
||||
import { setApiIsClose } from '../../../services/chatService';
|
||||
import { setPvpSeasonNum, setPvpSettleSeasonNum } from '../../../services/timeTaskService';
|
||||
import { setHiddenData } from '../../../services/dataService';
|
||||
import { setKvToMemory } from '../../../services/pushService';
|
||||
|
||||
export default function (app: Application) {
|
||||
new HandlerService(app, {});
|
||||
@@ -150,4 +151,12 @@ export class RoleRemote {
|
||||
errlogger.error(`remote ${__filename} \n ${e.stack}`);
|
||||
}
|
||||
}
|
||||
|
||||
public async setKvToMemory(originK: string, originV: string, aesKey: string, aesIV: string, now: number) {
|
||||
try {
|
||||
setKvToMemory(originK, originV, aesKey, aesIV, now);
|
||||
} catch(e) {
|
||||
errlogger.error(`remote ${__filename} \n ${e.stack}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ import { ActivityModelType } from '../../../db/Activity';
|
||||
import { GUILD_ACTIVITY_TYPE, LADDER_STATUS } from '../../../consts';
|
||||
import { setApiIsClose } from '../../../services/chatService';
|
||||
import { setHiddenData } from '../../../services/dataService';
|
||||
import { setKvToMemory } from '../../../services/pushService';
|
||||
|
||||
export default function (app: Application) {
|
||||
return new SystimerRemote(app);
|
||||
@@ -241,5 +242,12 @@ export class SystimerRemote {
|
||||
errlogger.error(`remote ${__filename} \n ${e.stack}`);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public async setKvToMemory(originK: string, originV: string, aesKey: string, aesIV: string, now: number) {
|
||||
try {
|
||||
setKvToMemory(originK, originV, aesKey, aesIV, now);
|
||||
} catch(e) {
|
||||
errlogger.error(`remote ${__filename} \n ${e.stack}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -172,25 +172,46 @@ export function removeFromTeamChannel(teamCode: string, roleId: string) {
|
||||
}
|
||||
|
||||
function getKvFromMemory() {
|
||||
let k = pinus.app.get('aeaKey');
|
||||
let v = pinus.app.get('aesIV');
|
||||
let aesKey = pinus.app.get('aesKey');
|
||||
let aesIV = pinus.app.get('aesIV');
|
||||
let originK = pinus.app.get('originK');
|
||||
let originV = pinus.app.get('originV');
|
||||
let kvRefTime = pinus.app.get('kvRefTime');
|
||||
let now = new Date().setMinutes(0, 0, 0);
|
||||
if(!kvRefTime || now - kvRefTime >= 60 * 60 * 1000) {
|
||||
k = genCode(24);
|
||||
v = genCode(16);
|
||||
pinus.app.set('aeaKey', k);
|
||||
pinus.app.set('aesIV', v);
|
||||
pinus.app.set('kvRefTime', now);
|
||||
originK = genCode(24);
|
||||
originV = genCode(16);
|
||||
let msgEncrypt = new MsgEncrypt({ k: originK, v: originV });
|
||||
({ aesKey, aesIV } = msgEncrypt.getEncodeKv());
|
||||
|
||||
setKvToRemote(originK, originV, aesKey, aesIV, now);
|
||||
}
|
||||
return { k, v }
|
||||
return { aesKey, aesIV, originK, originV, now }
|
||||
}
|
||||
|
||||
function setKvToRemote(originK: string, originV: string, aesKey: string, aesIV: string, now: number) {
|
||||
pinus.app.rpc.activity.activityRemote.setKvToMemory.broadcast(originK, originV, aesKey, aesIV, now);
|
||||
pinus.app.rpc.battle.battleRemote.setKvToMemory.broadcast(originK, originV, aesKey, aesIV, now);
|
||||
pinus.app.rpc.chat.chatRemote.setKvToMemory.broadcast(originK, originV, aesKey, aesIV, now);
|
||||
pinus.app.rpc.connector.connectorRemote.setKvToMemory.broadcast(originK, originV, aesKey, aesIV, now);
|
||||
pinus.app.rpc.guild.guildRemote.setKvToMemory.broadcast(originK, originV, aesKey, aesIV, now);
|
||||
pinus.app.rpc.order.orderRemote.setKvToMemory.broadcast(originK, originV, aesKey, aesIV, now);
|
||||
pinus.app.rpc.role.roleRemote.setKvToMemory.broadcast(originK, originV, aesKey, aesIV, now);
|
||||
pinus.app.rpc.systimer.systimerRemote.setKvToMemory.broadcast(originK, originV, aesKey, aesIV, now);
|
||||
}
|
||||
|
||||
export function setKvToMemory(originK: string, originV: string, aesKey: string, aesIV: string, now: number) {
|
||||
pinus.app.set('originK', originK);
|
||||
pinus.app.set('originV', originV);
|
||||
pinus.app.set('aesKey', aesKey);
|
||||
pinus.app.set('aesIV', aesIV);
|
||||
pinus.app.set('kvRefTime', now);
|
||||
}
|
||||
|
||||
function encryptMsg(event: string, json: any) {
|
||||
if(checkNotEncryptRoute(event)) return json
|
||||
let kv = getKvFromMemory();
|
||||
let msgEncrypt = new MsgEncrypt(kv);
|
||||
let { aesKey, aesIV } = msgEncrypt.getEncodeKv();
|
||||
let { aesKey, aesIV, originK, originV } = getKvFromMemory();
|
||||
let msgEncrypt = new MsgEncrypt({ originK, originV });
|
||||
let data = msgEncrypt.encryptMsg(json);
|
||||
return { data, k: aesKey, v: aesIV }
|
||||
}
|
||||
|
||||
@@ -29,13 +29,17 @@ export class MsgEncrypt {
|
||||
private encodeK: string = '';
|
||||
private encodeV: string = '';
|
||||
|
||||
constructor(data: { k?: string, v?: string, encodeK?: string, encodeV?: string }) {
|
||||
constructor(data: { k?: string, v?: string, encodeK?: string, encodeV?: string, originK?: string, originV?: string }) {
|
||||
if(data.k && data.v) {
|
||||
this.encodeAndSetKv(data.k, data.v);
|
||||
}
|
||||
if(data.encodeK && data.encodeV) {
|
||||
this.decodeAndSetKv(data.encodeK, data.encodeV);
|
||||
}
|
||||
if(data.originK && data.originV) {
|
||||
this.k = data.originK;
|
||||
this.v = data.originV;
|
||||
}
|
||||
}
|
||||
|
||||
public decryptMsg(data: string) {
|
||||
|
||||
Reference in New Issue
Block a user