From 39ed9dea0140c0fb6ec5cc7631a9682df17dd9ac 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: Sun, 11 Aug 2024 12:18:13 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E6=B6=88=E6=81=AFpost?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/onebot/main.ts | 26 +++++++++++++------------- src/onebot/network/index.ts | 16 ++++++++++++---- 2 files changed, 25 insertions(+), 17 deletions(-) diff --git a/src/onebot/main.ts b/src/onebot/main.ts index 56e295de..7e7e9680 100644 --- a/src/onebot/main.ts +++ b/src/onebot/main.ts @@ -54,34 +54,34 @@ export class NapCatOneBot11Adapter { //创建NetWork服务 let actions = createActionMap(this, this.core); - let OB11NetworkManagerWrap = new OB11NetworkManager(); if (ob11Config.http.enable) { - OB11NetworkManagerWrap.registerAdapter(new OB11PassiveHttpAdapter( + await this.networkManager.registerAdapter(new OB11PassiveHttpAdapter( ob11Config.http.port, ob11Config.token, this.core, this )); } if (ob11Config.http.enablePost) { - ob11Config.http.postUrls.forEach(url => { - OB11NetworkManagerWrap.registerAdapter(new OB11ActiveHttpAdapter( + ob11Config.http.postUrls.forEach(async url => { + await this.networkManager.registerAdapter(new OB11ActiveHttpAdapter( url, ob11Config.heartInterval, ob11Config.token, this.core, this )); }); } if (ob11Config.ws.enable) { - OB11NetworkManagerWrap.registerAdapter(new OB11PassiveWebSocketAdapter( + let OBPassiveWebSocketAdapter = new OB11PassiveWebSocketAdapter( ob11Config.ws.host, ob11Config.ws.port, ob11Config.heartInterval, ob11Config.token, this.core, this - )); + ) + await this.networkManager.registerAdapter(OBPassiveWebSocketAdapter); } if (ob11Config.reverseWs.enable) { - ob11Config.reverseWs.urls.forEach(url => { - OB11NetworkManagerWrap.registerAdapter(new OB11ActiveWebSocketAdapter( + ob11Config.reverseWs.urls.forEach(async url => { + await this.networkManager.registerAdapter(new OB11ActiveWebSocketAdapter( url, 5000, ob11Config.heartInterval, this.core, this )); }); } - OB11NetworkManagerWrap.registerAllActions(actions); - OB11NetworkManagerWrap.openAllAdapters(); + await this.networkManager.registerAllActions(actions); + await this.networkManager.openAllAdapters(); // Todo 开始启动NetWork await this.initMsgListener(); @@ -146,20 +146,20 @@ export class NapCatOneBot11Adapter { if (isSelfMsg) { ob11Msg.target_id = parseInt(message.peerUin); } - this.networkManager.emitEvent(ob11Msg); + this.networkManager.emitEvent(ob11Msg).then().catch(e => this.context.logger.logError('emitEvent error: ', e)); }).catch(e => this.context.logger.logError('constructMessage error: ', e)); OB11Constructor.GroupEvent(this.core, message).then(groupEvent => { if (groupEvent) { // log("post group event", groupEvent); - this.networkManager.emitEvent(groupEvent); + this.networkManager.emitEvent(groupEvent).then().catch(e => this.context.logger.logError('emitEvent error: ', e)); } }).catch(e => this.context.logger.logError('constructGroupEvent error: ', e)); OB11Constructor.PrivateEvent(this.core, message).then(privateEvent => { if (privateEvent) { // log("post private event", privateEvent); - this.networkManager.emitEvent(privateEvent); + this.networkManager.emitEvent(privateEvent).then().catch(e => this.context.logger.logError('emitEvent error: ', e)); } }); } diff --git a/src/onebot/network/index.ts b/src/onebot/network/index.ts index c31c9f62..57d1ef38 100644 --- a/src/onebot/network/index.ts +++ b/src/onebot/network/index.ts @@ -18,22 +18,28 @@ export interface IOB11NetworkAdapter { export class OB11NetworkManager { adapters: IOB11NetworkAdapter[] = []; + async getAllAdapters() { return this.adapters; } + async openAllAdapters() { return Promise.all(this.adapters.map(adapter => adapter.open())); } - async registerAllActions(actions: Map>) { + + async registerAllActions(actions: Map>) { return Promise.all(this.adapters.map(adapter => adapter.registerActionMap(actions))); } + async emitEvent(event: OB11EmitEventContent) { - // Mlikiowa V2.0.0 Refactor Todo + console.log('adapters', this.adapters.length); return Promise.all(this.adapters.map(adapter => adapter.onEvent(event))); } async registerAdapter(adapter: IOB11NetworkAdapter) { - return this.adapters.push(adapter); + console.log('Registering adapter:', adapter); + this.adapters.push(adapter); + console.log('Current adapters:', this.adapters.length); } async closeSomeAdapters(adapters: IOB11NetworkAdapter[]) { @@ -42,8 +48,10 @@ export class OB11NetworkManager { } async closeAllAdapters() { - this.adapters = []; + console.log('Closing all adapters'); await Promise.all(this.adapters.map(adapter => adapter.close())); + this.adapters = []; + console.log('All adapters closed. Current adapters:', this.adapters.length); } }