feat: sse完全体

This commit is contained in:
手瓜一十雪
2025-01-20 17:35:31 +08:00
parent 09014d1ab5
commit 857b191b03
3 changed files with 68 additions and 2 deletions

View File

@@ -19,9 +19,11 @@
<t-tabs ref="tabsRef" :style="{ width: tabsWidth + 'px' }" default-value="all" @change="selectType"> <t-tabs ref="tabsRef" :style="{ width: tabsWidth + 'px' }" default-value="all" @change="selectType">
<t-tab-panel value="all" label="全部"></t-tab-panel> <t-tab-panel value="all" label="全部"></t-tab-panel>
<t-tab-panel value="httpServers" label="HTTP 服务器"></t-tab-panel> <t-tab-panel value="httpServers" label="HTTP 服务器"></t-tab-panel>
<t-tab-panel value="httpSeeServers" label="HTTP SSE 服务器"></t-tab-panel>
<t-tab-panel value="httpClients" label="HTTP 客户端"></t-tab-panel> <t-tab-panel value="httpClients" label="HTTP 客户端"></t-tab-panel>
<t-tab-panel value="websocketServers" label="WebSocket 服务器"></t-tab-panel> <t-tab-panel value="websocketServers" label="WebSocket 服务器"></t-tab-panel>
<t-tab-panel value="websocketClients" label="WebSocket 客户端"></t-tab-panel> <t-tab-panel value="websocketClients" label="WebSocket 客户端"></t-tab-panel>
</t-tabs> </t-tabs>
</div> </div>
<t-loading attach="#alice" :loading="!loadPage" :showOverlay="false"> <t-loading attach="#alice" :loading="!loadPage" :showOverlay="false">
@@ -199,6 +201,7 @@
> >
<t-select v-model="newTab.type" @change="onloadDefault"> <t-select v-model="newTab.type" @change="onloadDefault">
<t-option value="httpServers">HTTP 服务器</t-option> <t-option value="httpServers">HTTP 服务器</t-option>
<t-option value="httpSseServers">HTTP SSE 服务器</t-option>
<t-option value="httpClients">HTTP 客户端</t-option> <t-option value="httpClients">HTTP 客户端</t-option>
<t-option value="websocketServers">WebSocket 服务器</t-option> <t-option value="websocketServers">WebSocket 服务器</t-option>
<t-option value="websocketClients">WebSocket 客户端</t-option> <t-option value="websocketClients">WebSocket 客户端</t-option>
@@ -266,6 +269,7 @@ const componentMap: Record<
| typeof WebsocketClientComponent | typeof WebsocketClientComponent
> = { > = {
httpServers: HttpServerComponent, httpServers: HttpServerComponent,
httpSseServers: HttpServerComponent,
httpClients: HttpClientComponent, httpClients: HttpClientComponent,
websocketServers: WebsocketServerComponent, websocketServers: WebsocketServerComponent,
websocketClients: WebsocketClientComponent, websocketClients: WebsocketClientComponent,
@@ -279,6 +283,7 @@ const configIndex = ref<number>(0);
const networkConfig: NetworkConfig & { [key: string]: any } = { const networkConfig: NetworkConfig & { [key: string]: any } = {
websocketClients: [], websocketClients: [],
websocketServers: [], websocketServers: [],
httpSseServers: [],
httpClients: [], httpClients: [],
httpServers: [], httpServers: [],
}; };
@@ -289,6 +294,7 @@ const WebConfg = ref(
['all', []], ['all', []],
['httpServers', []], ['httpServers', []],
['httpClients', []], ['httpClients', []],
['httpSseServers', []],
['websocketServers', []], ['websocketServers', []],
['websocketClients', []], ['websocketClients', []],
]) ])
@@ -296,6 +302,7 @@ const WebConfg = ref(
const typeCh: Record<ComponentKey, string> = { const typeCh: Record<ComponentKey, string> = {
httpServers: 'HTTP 服务器', httpServers: 'HTTP 服务器',
httpClients: 'HTTP 客户端', httpClients: 'HTTP 客户端',
httpSseServers: 'HTTP SSE 服务器',
websocketServers: 'WebSocket 服务器', websocketServers: 'WebSocket 服务器',
websocketClients: 'WebSocket 客户端', websocketClients: 'WebSocket 客户端',
}; };

View File

@@ -0,0 +1,58 @@
<template>
<div>
<t-form labelAlign="left">
<t-form-item label="启用">
<t-switch v-model="config.enable" />
</t-form-item>
<t-form-item label="端口">
<t-input v-model.number="config.port" type="number" />
</t-form-item>
<t-form-item label="主机">
<t-input v-model="config.host" type="text" />
</t-form-item>
<t-form-item label="报告自身消息">
<t-switch v-model="config.reportSelfMessage" />
</t-form-item>
<t-form-item label="启用 CORS">
<t-switch v-model="config.enableCors" />
</t-form-item>
<t-form-item label="启用 WS">
<t-switch v-model="config.enableWebsocket" />
</t-form-item>
<t-form-item label="消息格式">
<t-select v-model="config.messagePostFormat" :options="messageFormatOptions" />
</t-form-item>
<t-form-item label="Token">
<t-input v-model="config.token" type="text" />
</t-form-item>
<t-form-item label="调试模式">
<t-switch v-model="config.debug" />
</t-form-item>
</t-form>
</div>
</template>
<script setup lang="ts">
import { ref, watch } from 'vue';
import { HttpSseServerConfig } from '../../../../src/onebot/config/config';
const props = defineProps<{
config: HttpSseServerConfig;
}>();
const messageFormatOptions = ref([
{ label: 'Array', value: 'array' },
{ label: 'String', value: 'string' },
]);
watch(
() => props.config.messagePostFormat,
(newValue) => {
if (newValue !== 'array' && newValue !== 'string') {
props.config.messagePostFormat = 'array';
}
}
);
</script>
<style scoped></style>

View File

@@ -210,6 +210,7 @@ export class NapCatOneBot11Adapter {
await this.handleConfigChange(prev.network.httpServers, now.network.httpServers, OB11PassiveHttpAdapter); await this.handleConfigChange(prev.network.httpServers, now.network.httpServers, OB11PassiveHttpAdapter);
await this.handleConfigChange(prev.network.httpClients, now.network.httpClients, OB11ActiveHttpAdapter); await this.handleConfigChange(prev.network.httpClients, now.network.httpClients, OB11ActiveHttpAdapter);
await this.handleConfigChange(prev.network.httpSseServers, now.network.httpSseServers, OB11ActiveHttpSSEAdapter);
await this.handleConfigChange(prev.network.websocketServers, now.network.websocketServers, OB11PassiveWebSocketAdapter); await this.handleConfigChange(prev.network.websocketServers, now.network.websocketServers, OB11PassiveWebSocketAdapter);
await this.handleConfigChange(prev.network.websocketClients, now.network.websocketClients, OB11ActiveWebSocketAdapter); await this.handleConfigChange(prev.network.websocketClients, now.network.websocketClients, OB11ActiveWebSocketAdapter);
} }