mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2024-11-21 09:36:35 +00:00
feat: better edge case handling
This commit is contained in:
parent
efc9064abb
commit
2a2328b029
@ -51,7 +51,7 @@ export class NativePacketClient extends PacketClient {
|
|||||||
//此时为recv 调用callback
|
//此时为recv 调用callback
|
||||||
const trace_id = this.sendEvent.get(seq);
|
const trace_id = this.sendEvent.get(seq);
|
||||||
const callback = this.cb.get(trace_id + 'recv');
|
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 });
|
callback?.({ seq, cmd, hex_data });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ const clientPriority: clientPriority = {
|
|||||||
|
|
||||||
export class PacketSession {
|
export class PacketSession {
|
||||||
readonly logger: LogWrapper;
|
readonly logger: LogWrapper;
|
||||||
readonly client: PacketClient;
|
readonly client: PacketClient ;
|
||||||
readonly packer: PacketPacker;
|
readonly packer: PacketPacker;
|
||||||
readonly highwaySession: PacketHighwaySession;
|
readonly highwaySession: PacketHighwaySession;
|
||||||
|
|
||||||
@ -30,19 +30,28 @@ export class PacketSession {
|
|||||||
|
|
||||||
private newClient(core: NapCatCore): PacketClient {
|
private newClient(core: NapCatCore): PacketClient {
|
||||||
const prefer = core.configLoader.configData.packetBackend;
|
const prefer = core.configLoader.configData.packetBackend;
|
||||||
|
let client: PacketClient | null;
|
||||||
switch (prefer) {
|
switch (prefer) {
|
||||||
case "native":
|
case "native":
|
||||||
this.logger.log("[Core] [Packet] 使用指定的 NativePacketClient 作为后端");
|
this.logger.log("[Core] [Packet] 使用指定的 NativePacketClient 作为后端");
|
||||||
return new NativePacketClient(core);
|
client = new NativePacketClient(core);
|
||||||
|
break;
|
||||||
case "frida":
|
case "frida":
|
||||||
this.logger.log("[Core] [Packet] 使用指定的 FridaPacketClient 作为后端");
|
this.logger.log("[Core] [Packet] 使用指定的 FridaPacketClient 作为后端");
|
||||||
return new wsPacketClient(core);
|
client = new wsPacketClient(core);
|
||||||
|
break;
|
||||||
case "auto":
|
case "auto":
|
||||||
case undefined:
|
case undefined:
|
||||||
return this.judgeClient(core);
|
client = this.judgeClient(core);
|
||||||
|
break;
|
||||||
default:
|
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 {
|
private judgeClient(core: NapCatCore): PacketClient {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user