feat: better edge case handling

This commit is contained in:
pk5ls20 2024-11-05 22:11:01 +08:00
parent efc9064abb
commit 2a2328b029
No known key found for this signature in database
GPG Key ID: 6370ED7A169F493A
2 changed files with 15 additions and 6 deletions

View File

@ -51,7 +51,7 @@ export class NativePacketClient extends PacketClient {
//此时为recv 调用callback
const trace_id = this.sendEvent.get(seq);
const callback = this.cb.get(trace_id + 'recv');
console.log('callback:', callback, trace_id);
// console.log('callback:', callback, trace_id);
callback?.({ seq, cmd, hex_data });
}

View File

@ -17,7 +17,7 @@ const clientPriority: clientPriority = {
export class PacketSession {
readonly logger: LogWrapper;
readonly client: PacketClient;
readonly client: PacketClient ;
readonly packer: PacketPacker;
readonly highwaySession: PacketHighwaySession;
@ -30,19 +30,28 @@ export class PacketSession {
private newClient(core: NapCatCore): PacketClient {
const prefer = core.configLoader.configData.packetBackend;
let client: PacketClient | null;
switch (prefer) {
case "native":
this.logger.log("[Core] [Packet] 使用指定的 NativePacketClient 作为后端");
return new NativePacketClient(core);
client = new NativePacketClient(core);
break;
case "frida":
this.logger.log("[Core] [Packet] 使用指定的 FridaPacketClient 作为后端");
return new wsPacketClient(core);
client = new wsPacketClient(core);
break;
case "auto":
case undefined:
return this.judgeClient(core);
client = this.judgeClient(core);
break;
default:
throw new Error(`[Core] [Packet] 未知的Packet后端类型 ${prefer},请检查配置文件!`);
this.logger.logError(`[Core] [Packet] 未知的Packet后端类型 ${prefer},请检查配置文件!`);
client = null;
}
if (!(client && client.check(core))) {
throw new Error("[Core] [Packet] 无可用的后端NapCat.Packet将不会加载");
}
return client;
}
private judgeClient(core: NapCatCore): PacketClient {