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服务
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));
}
});
}

View File

@ -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<string,BaseAction<any, any>>) {
async registerAllActions(actions: Map<string, BaseAction<any, any>>) {
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);
}
}