chore: 消息post

This commit is contained in:
手瓜一十雪 2024-08-11 12:18:13 +08:00
parent 6f095470ad
commit 39ed9dea01
2 changed files with 25 additions and 17 deletions

View File

@ -54,34 +54,34 @@ export class NapCatOneBot11Adapter {
//创建NetWork服务 //创建NetWork服务
let actions = createActionMap(this, this.core); let actions = createActionMap(this, this.core);
let OB11NetworkManagerWrap = new OB11NetworkManager();
if (ob11Config.http.enable) { if (ob11Config.http.enable) {
OB11NetworkManagerWrap.registerAdapter(new OB11PassiveHttpAdapter( await this.networkManager.registerAdapter(new OB11PassiveHttpAdapter(
ob11Config.http.port, ob11Config.token, this.core, this ob11Config.http.port, ob11Config.token, this.core, this
)); ));
} }
if (ob11Config.http.enablePost) { if (ob11Config.http.enablePost) {
ob11Config.http.postUrls.forEach(url => { ob11Config.http.postUrls.forEach(async url => {
OB11NetworkManagerWrap.registerAdapter(new OB11ActiveHttpAdapter( await this.networkManager.registerAdapter(new OB11ActiveHttpAdapter(
url, ob11Config.heartInterval, ob11Config.token, this.core, this url, ob11Config.heartInterval, ob11Config.token, this.core, this
)); ));
}); });
} }
if (ob11Config.ws.enable) { 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 ob11Config.ws.host, ob11Config.ws.port, ob11Config.heartInterval, ob11Config.token, this.core, this
)); )
await this.networkManager.registerAdapter(OBPassiveWebSocketAdapter);
} }
if (ob11Config.reverseWs.enable) { if (ob11Config.reverseWs.enable) {
ob11Config.reverseWs.urls.forEach(url => { ob11Config.reverseWs.urls.forEach(async url => {
OB11NetworkManagerWrap.registerAdapter(new OB11ActiveWebSocketAdapter( await this.networkManager.registerAdapter(new OB11ActiveWebSocketAdapter(
url, 5000, ob11Config.heartInterval, this.core, this url, 5000, ob11Config.heartInterval, this.core, this
)); ));
}); });
} }
OB11NetworkManagerWrap.registerAllActions(actions); await this.networkManager.registerAllActions(actions);
OB11NetworkManagerWrap.openAllAdapters(); await this.networkManager.openAllAdapters();
// Todo 开始启动NetWork // Todo 开始启动NetWork
await this.initMsgListener(); await this.initMsgListener();
@ -146,20 +146,20 @@ export class NapCatOneBot11Adapter {
if (isSelfMsg) { if (isSelfMsg) {
ob11Msg.target_id = parseInt(message.peerUin); 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)); }).catch(e => this.context.logger.logError('constructMessage error: ', e));
OB11Constructor.GroupEvent(this.core, message).then(groupEvent => { OB11Constructor.GroupEvent(this.core, message).then(groupEvent => {
if (groupEvent) { if (groupEvent) {
// log("post group event", 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)); }).catch(e => this.context.logger.logError('constructGroupEvent error: ', e));
OB11Constructor.PrivateEvent(this.core, message).then(privateEvent => { OB11Constructor.PrivateEvent(this.core, message).then(privateEvent => {
if (privateEvent) { if (privateEvent) {
// log("post private event", privateEvent); // log("post private event", privateEvent);
this.networkManager.emitEvent(privateEvent); this.networkManager.emitEvent(privateEvent).then().catch(e => this.context.logger.logError('emitEvent error: ', e));
} }
}); });
} }

View File

@ -18,22 +18,28 @@ export interface IOB11NetworkAdapter {
export class OB11NetworkManager { export class OB11NetworkManager {
adapters: IOB11NetworkAdapter[] = []; adapters: IOB11NetworkAdapter[] = [];
async getAllAdapters() { async getAllAdapters() {
return this.adapters; return this.adapters;
} }
async openAllAdapters() { async openAllAdapters() {
return Promise.all(this.adapters.map(adapter => adapter.open())); return Promise.all(this.adapters.map(adapter => adapter.open()));
} }
async registerAllActions(actions: Map<string,BaseAction<any, any>>) {
async registerAllActions(actions: Map<string, BaseAction<any, any>>) {
return Promise.all(this.adapters.map(adapter => adapter.registerActionMap(actions))); return Promise.all(this.adapters.map(adapter => adapter.registerActionMap(actions)));
} }
async emitEvent(event: OB11EmitEventContent) { 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))); return Promise.all(this.adapters.map(adapter => adapter.onEvent(event)));
} }
async registerAdapter(adapter: IOB11NetworkAdapter) { 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[]) { async closeSomeAdapters(adapters: IOB11NetworkAdapter[]) {
@ -42,8 +48,10 @@ export class OB11NetworkManager {
} }
async closeAllAdapters() { async closeAllAdapters() {
this.adapters = []; console.log('Closing all adapters');
await Promise.all(this.adapters.map(adapter => adapter.close())); await Promise.all(this.adapters.map(adapter => adapter.close()));
this.adapters = [];
console.log('All adapters closed. Current adapters:', this.adapters.length);
} }
} }