From 21b228552d63095c65ad0455365c93fccd2daa20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Thu, 14 Nov 2024 11:46:37 +0800 Subject: [PATCH] fix --- src/core/packet/client/wsClient.ts | 7 +++-- src/core/packet/clientSession.ts | 2 +- src/core/packet/context/clientContext.ts | 37 ++++++++++++----------- src/core/packet/context/loggerContext.ts | 2 +- src/core/packet/highway/highwayContext.ts | 6 ++-- 5 files changed, 29 insertions(+), 25 deletions(-) diff --git a/src/core/packet/client/wsClient.ts b/src/core/packet/client/wsClient.ts index df62cec9..54625cfc 100644 --- a/src/core/packet/client/wsClient.ts +++ b/src/core/packet/client/wsClient.ts @@ -2,6 +2,7 @@ import { Data, WebSocket } from "ws"; import { IPacketClient, RecvPacket } from "@/core/packet/client/baseClient"; import { PacketContext } from "@/core/packet/context/packetContext"; import { LogStack } from "@/core/packet/context/clientContext"; +import { ErrorEvent } from "ws"; export class WsPacketClient extends IPacketClient { private websocket: WebSocket | null = null; @@ -85,11 +86,11 @@ export class WsPacketClient extends IPacketClient { this.websocket.onmessage = (event) => this.handleMessage(event.data).catch(err => { this.context.logger.error(`处理消息时出错: ${err}`); }); - this.websocket.onerror = (error) => { + this.websocket.onerror = (event: ErrorEvent) => { this.available = false; - this.context.logger.error(`WebSocket 出错: ${error.message}`); + this.context.logger.error(`WebSocket 出错: ${event.message}`); this.websocket?.close(); - reject(error); + reject(new Error(`WebSocket 出错: ${event.message}`)); }; }); } diff --git a/src/core/packet/clientSession.ts b/src/core/packet/clientSession.ts index 3faea314..7edf1d2d 100644 --- a/src/core/packet/clientSession.ts +++ b/src/core/packet/clientSession.ts @@ -24,7 +24,7 @@ export class PacketClientSession { return this.context.operation; } - // TODO: global message element adapter (? + // work: global message element adapter (? get msgConverter() { return this.context.msgConverter; } diff --git a/src/core/packet/context/clientContext.ts b/src/core/packet/context/clientContext.ts index dd5975c1..eadbaa7b 100644 --- a/src/core/packet/context/clientContext.ts +++ b/src/core/packet/context/clientContext.ts @@ -16,7 +16,7 @@ const clientPriority: clientPriority = { export class LogStack { private stack: string[] = []; - private logger: PacketLogger; + private readonly logger: PacketLogger; constructor(logger: PacketLogger) { this.logger = logger; @@ -82,25 +82,28 @@ export class PacketClientContext { const prefer = this.context.napcore.config.packetBackend; let client: IPacketClient | null; switch (prefer) { - case "native": - this.context.logger.info("使用指定的 NativePacketClient 作为后端"); - client = new NativePacketClient(this.context, this.logStack); - break; - case "frida": - this.context.logger.info("[Core] [Packet] 使用指定的 FridaPacketClient 作为后端"); - client = new WsPacketClient(this.context, this.logStack); - break; - case "auto": - case undefined: - client = this.judgeClient(); - break; - default: - this.context.logger.error(`未知的PacketBackend ${prefer},请检查配置文件!`); - client = null; + case "native": + this.context.logger.info("使用指定的 NativePacketClient 作为后端"); + client = new NativePacketClient(this.context, this.logStack); + break; + case "frida": + this.context.logger.info("[Core] [Packet] 使用指定的 FridaPacketClient 作为后端"); + client = new WsPacketClient(this.context, this.logStack); + break; + case "auto": + case undefined: + client = this.judgeClient(); + break; + default: + this.context.logger.error(`未知的PacketBackend ${prefer},请检查配置文件!`); + client = null; } - if (!(client && client.check())) { + if (!client?.check()) { throw new Error("[Core] [Packet] 无可用的后端,NapCat.Packet将不会加载!"); } + if (!client) { + throw new Error("[Core] [Packet] 后端异常,NapCat.Packet将不会加载!"); + } return client; } diff --git a/src/core/packet/context/loggerContext.ts b/src/core/packet/context/loggerContext.ts index 3d6d35da..657bdd83 100644 --- a/src/core/packet/context/loggerContext.ts +++ b/src/core/packet/context/loggerContext.ts @@ -1,7 +1,7 @@ import { LogLevel, LogWrapper } from "@/common/log"; import { PacketContext } from "@/core/packet/context/packetContext"; -// TODO: check bind? +// work: check bind? export class PacketLogger { private readonly napLogger: LogWrapper; diff --git a/src/core/packet/highway/highwayContext.ts b/src/core/packet/highway/highwayContext.ts index 77e7b8ce..ed95f6ee 100644 --- a/src/core/packet/highway/highwayContext.ts +++ b/src/core/packet/highway/highwayContext.ts @@ -33,7 +33,7 @@ export interface PacketHighwaySig { } export class PacketHighwayContext { - private context: PacketContext; + private readonly context: PacketContext; protected sig: PacketHighwaySig; protected logger: PacketLogger; protected hwClient: PacketHighwayClient; @@ -223,7 +223,7 @@ export class PacketHighwayContext { msgInfoBody: preRespData.upload.msgInfo.msgInfoBody, blockSize: BlockSize, hash: { - fileSha1: await calculateSha1StreamBytes(video.filePath!) + fileSha1: await calculateSha1StreamBytes(video.filePath) } }); await this.hwClient.upload( @@ -288,7 +288,7 @@ export class PacketHighwayContext { msgInfoBody: preRespData.upload.msgInfo.msgInfoBody, blockSize: BlockSize, hash: { - fileSha1: await calculateSha1StreamBytes(video.filePath!) + fileSha1: await calculateSha1StreamBytes(video.filePath) } }); await this.hwClient.upload(