This commit is contained in:
手瓜一十雪
2025-01-22 09:33:19 +08:00
parent d9adfad1c0
commit 4d4d79e66f
7 changed files with 28 additions and 28 deletions

View File

@@ -16,12 +16,12 @@ import {
} from '@/core'; } from '@/core';
import { OB11ConfigLoader } from '@/onebot/config'; import { OB11ConfigLoader } from '@/onebot/config';
import { import {
OB11ActiveHttpAdapter, OB11HttpClientAdapter,
OB11ActiveWebSocketAdapter, OB11WebSocketClientAdapter,
OB11NetworkManager, OB11NetworkManager,
OB11NetworkReloadType, OB11NetworkReloadType,
OB11PassiveHttpAdapter, OB11HttpServerAdapter,
OB11PassiveWebSocketAdapter, OB11WebSocketServerAdapter,
} from '@/onebot/network'; } from '@/onebot/network';
import { NapCatPathWrapper } from '@/common/path'; import { NapCatPathWrapper } from '@/common/path';
import { import {
@@ -51,7 +51,7 @@ import {
import { OB11Message } from './types'; import { OB11Message } from './types';
import { OB11PluginAdapter } from './network/plugin'; import { OB11PluginAdapter } from './network/plugin';
import { IOB11NetworkAdapter } from "@/onebot/network/adapter"; import { IOB11NetworkAdapter } from "@/onebot/network/adapter";
import { OB11ActiveHttpSSEAdapter } from './network/active-http-sse'; import { OB11HttpSSEServerAdapter } from './network/http-server-sse';
//OneBot实现类 //OneBot实现类
export class NapCatOneBot11Adapter { export class NapCatOneBot11Adapter {
@@ -123,28 +123,28 @@ export class NapCatOneBot11Adapter {
for (const key of ob11Config.network.httpServers) { for (const key of ob11Config.network.httpServers) {
if (key.enable) { if (key.enable) {
this.networkManager.registerAdapter( this.networkManager.registerAdapter(
new OB11PassiveHttpAdapter(key.name, key, this.core, this, this.actions) new OB11HttpServerAdapter(key.name, key, this.core, this, this.actions)
); );
} }
} }
for (const key of ob11Config.network.httpSseServers) { for (const key of ob11Config.network.httpSseServers) {
if (key.enable) { if (key.enable) {
this.networkManager.registerAdapter( this.networkManager.registerAdapter(
new OB11ActiveHttpSSEAdapter(key.name, key, this.core, this, this.actions) new OB11HttpSSEServerAdapter(key.name, key, this.core, this, this.actions)
); );
} }
} }
for (const key of ob11Config.network.httpClients) { for (const key of ob11Config.network.httpClients) {
if (key.enable) { if (key.enable) {
this.networkManager.registerAdapter( this.networkManager.registerAdapter(
new OB11ActiveHttpAdapter(key.name, key, this.core, this, this.actions) new OB11HttpClientAdapter(key.name, key, this.core, this, this.actions)
); );
} }
} }
for (const key of ob11Config.network.websocketServers) { for (const key of ob11Config.network.websocketServers) {
if (key.enable) { if (key.enable) {
this.networkManager.registerAdapter( this.networkManager.registerAdapter(
new OB11PassiveWebSocketAdapter( new OB11WebSocketServerAdapter(
key.name, key.name,
key, key,
this.core, this.core,
@@ -157,7 +157,7 @@ export class NapCatOneBot11Adapter {
for (const key of ob11Config.network.websocketClients) { for (const key of ob11Config.network.websocketClients) {
if (key.enable) { if (key.enable) {
this.networkManager.registerAdapter( this.networkManager.registerAdapter(
new OB11ActiveWebSocketAdapter( new OB11WebSocketClientAdapter(
key.name, key.name,
key, key,
this.core, this.core,
@@ -206,11 +206,11 @@ export class NapCatOneBot11Adapter {
this.context.logger.log(`[Notice] [OneBot11] 配置变更前:\n${prevLog}`); this.context.logger.log(`[Notice] [OneBot11] 配置变更前:\n${prevLog}`);
this.context.logger.log(`[Notice] [OneBot11] 配置变更后:\n${newLog}`); this.context.logger.log(`[Notice] [OneBot11] 配置变更后:\n${newLog}`);
await this.handleConfigChange(prev.network.httpServers, now.network.httpServers, OB11PassiveHttpAdapter); await this.handleConfigChange(prev.network.httpServers, now.network.httpServers, OB11HttpServerAdapter);
await this.handleConfigChange(prev.network.httpClients, now.network.httpClients, OB11ActiveHttpAdapter); await this.handleConfigChange(prev.network.httpClients, now.network.httpClients, OB11HttpClientAdapter);
await this.handleConfigChange(prev.network.httpSseServers, now.network.httpSseServers, OB11ActiveHttpSSEAdapter); await this.handleConfigChange(prev.network.httpSseServers, now.network.httpSseServers, OB11HttpSSEServerAdapter);
await this.handleConfigChange(prev.network.websocketServers, now.network.websocketServers, OB11PassiveWebSocketAdapter); await this.handleConfigChange(prev.network.websocketServers, now.network.websocketServers, OB11WebSocketServerAdapter);
await this.handleConfigChange(prev.network.websocketClients, now.network.websocketClients, OB11ActiveWebSocketAdapter); await this.handleConfigChange(prev.network.websocketClients, now.network.websocketClients, OB11WebSocketClientAdapter);
} }
private async handleConfigChange<CT extends NetworkAdapterConfig>( private async handleConfigChange<CT extends NetworkAdapterConfig>(

View File

@@ -8,7 +8,7 @@ import { HttpClientConfig } from '@/onebot/config/config';
import { ActionMap } from '@/onebot/action'; import { ActionMap } from '@/onebot/action';
import { IOB11NetworkAdapter } from "@/onebot/network/adapter"; import { IOB11NetworkAdapter } from "@/onebot/network/adapter";
export class OB11ActiveHttpAdapter extends IOB11NetworkAdapter<HttpClientConfig> { export class OB11HttpClientAdapter extends IOB11NetworkAdapter<HttpClientConfig> {
constructor( constructor(
name: string, config: HttpClientConfig, core: NapCatCore, obContext: NapCatOneBot11Adapter, actions: ActionMap name: string, config: HttpClientConfig, core: NapCatCore, obContext: NapCatOneBot11Adapter, actions: ActionMap
) { ) {

View File

@@ -1,9 +1,9 @@
import { OB11EmitEventContent } from './index'; import { OB11EmitEventContent } from './index';
import { Request, Response } from 'express'; import { Request, Response } from 'express';
import { OB11Response } from '@/onebot/action/OneBotAction'; import { OB11Response } from '@/onebot/action/OneBotAction';
import { OB11PassiveHttpAdapter } from './passive-http'; import { OB11HttpServerAdapter } from './http-server';
export class OB11ActiveHttpSSEAdapter extends OB11PassiveHttpAdapter { export class OB11HttpSSEServerAdapter extends OB11HttpServerAdapter {
private sseClients: Response[] = []; private sseClients: Response[] = [];
async handleRequest(req: Request, res: Response): Promise<any> { async handleRequest(req: Request, res: Response): Promise<any> {

View File

@@ -9,7 +9,7 @@ import { HttpServerConfig } from '@/onebot/config/config';
import { NapCatOneBot11Adapter } from "@/onebot"; import { NapCatOneBot11Adapter } from "@/onebot";
import { IOB11NetworkAdapter } from "@/onebot/network/adapter"; import { IOB11NetworkAdapter } from "@/onebot/network/adapter";
export class OB11PassiveHttpAdapter extends IOB11NetworkAdapter<HttpServerConfig> { export class OB11HttpServerAdapter extends IOB11NetworkAdapter<HttpServerConfig> {
private app: Express | undefined; private app: Express | undefined;
private server: http.Server | undefined; private server: http.Server | undefined;
@@ -98,7 +98,7 @@ export class OB11PassiveHttpAdapter extends IOB11NetworkAdapter<HttpServerConfig
const action = this.actions.get(actionName as any); const action = this.actions.get(actionName as any);
if (action) { if (action) {
try { try {
const result = await action.handle(payload, this.name); const result = await action.handle(payload, this.name, this.config);
return res.json(result); return res.json(result);
} catch (error: any) { } catch (error: any) {
return res.json(OB11Response.error(error?.stack?.toString() || error?.message || 'Error Handle', 200)); return res.json(OB11Response.error(error?.stack?.toString() || error?.message || 'Error Handle', 200));

View File

@@ -101,7 +101,7 @@ export class OB11NetworkManager {
} }
} }
export * from './active-http'; export * from './http-client';
export * from './active-websocket'; export * from './websocket-client';
export * from './passive-http'; export * from './http-server';
export * from './passive-websocket'; export * from './websocket-server';

View File

@@ -10,7 +10,7 @@ import { WebsocketClientConfig } from '@/onebot/config/config';
import { NapCatOneBot11Adapter } from "@/onebot"; import { NapCatOneBot11Adapter } from "@/onebot";
import { IOB11NetworkAdapter } from "@/onebot/network/adapter"; import { IOB11NetworkAdapter } from "@/onebot/network/adapter";
export class OB11ActiveWebSocketAdapter extends IOB11NetworkAdapter<WebsocketClientConfig> { export class OB11WebSocketClientAdapter extends IOB11NetworkAdapter<WebsocketClientConfig> {
private connection: WebSocket | null = null; private connection: WebSocket | null = null;
private heartbeatRef: NodeJS.Timeout | null = null; private heartbeatRef: NodeJS.Timeout | null = null;
@@ -143,7 +143,7 @@ export class OB11ActiveWebSocketAdapter extends IOB11NetworkAdapter<WebsocketCli
this.checkStateAndReply<any>(OB11Response.error('不支持的Api ' + receiveData.action, 1404, echo)); this.checkStateAndReply<any>(OB11Response.error('不支持的Api ' + receiveData.action, 1404, echo));
return; return;
} }
const retdata = await action.websocketHandle(receiveData.params, echo ?? '', this.name); const retdata = await action.websocketHandle(receiveData.params, echo ?? '', this.name, this.config);
this.checkStateAndReply<any>({ ...retdata }); this.checkStateAndReply<any>({ ...retdata });
} }
async reload(newConfig: WebsocketClientConfig) { async reload(newConfig: WebsocketClientConfig) {

View File

@@ -13,7 +13,7 @@ import { WebsocketServerConfig } from '@/onebot/config/config';
import { NapCatOneBot11Adapter } from "@/onebot"; import { NapCatOneBot11Adapter } from "@/onebot";
import { IOB11NetworkAdapter } from "@/onebot/network/adapter"; import { IOB11NetworkAdapter } from "@/onebot/network/adapter";
export class OB11PassiveWebSocketAdapter extends IOB11NetworkAdapter<WebsocketServerConfig> { export class OB11WebSocketServerAdapter extends IOB11NetworkAdapter<WebsocketServerConfig> {
wsServer: WebSocketServer; wsServer: WebSocketServer;
wsClients: WebSocket[] = []; wsClients: WebSocket[] = [];
wsClientsMutex = new Mutex(); wsClientsMutex = new Mutex();
@@ -176,7 +176,7 @@ export class OB11PassiveWebSocketAdapter extends IOB11NetworkAdapter<WebsocketSe
this.checkStateAndReply<any>(OB11Response.error('不支持的API ' + receiveData.action, 1404, echo), wsClient); this.checkStateAndReply<any>(OB11Response.error('不支持的API ' + receiveData.action, 1404, echo), wsClient);
return; return;
} }
const retdata = await action.websocketHandle(receiveData.params, echo ?? '', this.name); const retdata = await action.websocketHandle(receiveData.params, echo ?? '', this.name, this.config);
this.checkStateAndReply<any>({ ...retdata }, wsClient); this.checkStateAndReply<any>({ ...retdata }, wsClient);
} }