feat: Introduce a 10ms delay to sendSsoCmdReqByContend and cache prepareUpload requests

This commit is contained in:
pk5ls20
2024-10-17 22:41:39 +08:00
parent 8873a030ab
commit 205174255f
2 changed files with 9 additions and 3 deletions

View File

@@ -32,6 +32,7 @@ export class PacketHighwaySession {
protected sig: PacketHighwaySig;
protected logger: LogWrapper;
protected packer: PacketPacker;
private cachedPrepareReq: Promise<void> | null = null;
constructor(logger: LogWrapper, client: PacketClient) {
this.packetClient = client;
@@ -53,12 +54,15 @@ export class PacketHighwaySession {
}
if (this.sig.sigSession === null || this.sig.sessionKey === null) {
this.logger.logWarn('[Highway] sigSession or sessionKey not available!');
await this.prepareUpload();
if (this.cachedPrepareReq === null) {
this.cachedPrepareReq = this.prepareUpload().finally(() => {
this.cachedPrepareReq = null;
});
}
await this.cachedPrepareReq;
}
}
// TODO: add signal to auto prepare when ready
// TODO: refactor
private async prepareUpload(): Promise<void> {
const packet = this.packer.packHttp0x6ff_501();
const req = await this.packetClient.sendPacket('HttpConn.0x6ff_501', packet, true);