This commit is contained in:
idranme 2024-09-04 17:15:41 +08:00
parent fffa664400
commit b2088824cc
No known key found for this signature in database
GPG Key ID: 926F7B5B668E495F
7 changed files with 29 additions and 12 deletions

View File

@ -22,7 +22,7 @@
"cors": "^2.8.5",
"cosmokit": "^1.6.2",
"express": "^4.19.2",
"fast-xml-parser": "^4.4.1",
"fast-xml-parser": "^4.5.0",
"file-type": "^19.4.1",
"fluent-ffmpeg": "^2.1.3",
"minato": "^3.5.1",
@ -38,7 +38,7 @@
"electron": "^31.4.0",
"electron-vite": "^2.3.0",
"typescript": "^5.5.4",
"vite": "^5.4.2",
"vite": "^5.4.3",
"vite-plugin-cp": "^4.0.8"
},
"packageManager": "yarn@4.4.1"

View File

@ -33,7 +33,8 @@ export class ConfigUtil {
enableWsReverse: false,
messagePostFormat: 'array',
enableHttpHeart: false,
enableQOAutoQuote: false
enableQOAutoQuote: false,
listenLocalhost: false
}
const defaultConfig: Config = {
enableLLOB: true,

View File

@ -11,6 +11,7 @@ export interface OB11Config {
messagePostFormat?: 'array' | 'string'
enableHttpHeart?: boolean
enableQOAutoQuote: boolean // 快速操作回复自动引用原消息
listenLocalhost: boolean
}
export interface CheckVersion {

View File

@ -50,7 +50,8 @@ class OneBot11Adapter extends Service {
this.ob11Http = new OB11Http(ctx, {
port: config.httpPort,
token: config.token,
actionMap
actionMap,
listenLocalhost: config.listenLocalhost
})
this.ob11HttpPost = new OB11HttpPost(ctx, {
hosts: config.httpHosts,
@ -62,7 +63,8 @@ class OneBot11Adapter extends Service {
port: config.wsPort,
heartInterval: config.heartInterval,
token: config.token,
actionMap
actionMap,
listenLocalhost: config.listenLocalhost
})
this.ob11WebSocketReverseManager = new OB11WebSocketReverseManager(ctx, {
hosts: config.wsHosts,
@ -292,7 +294,7 @@ class OneBot11Adapter extends Service {
}
}
// HTTP 端口变化,重启服务
if (config.ob11.httpPort !== old.httpPort) {
if ((config.ob11.httpPort !== old.httpPort || config.ob11.listenLocalhost !== old.listenLocalhost) && config.ob11.enableHttp) {
await this.ob11Http.stop()
this.ob11Http.start()
}
@ -305,7 +307,7 @@ class OneBot11Adapter extends Service {
}
}
// 正向 WebSocket 端口变化,重启服务
if (config.ob11.wsPort !== old.wsPort) {
if ((config.ob11.wsPort !== old.wsPort || config.ob11.listenLocalhost !== old.listenLocalhost) && config.ob11.enableWs) {
await this.ob11WebSocket.stop()
this.ob11WebSocket.start()
llonebotError.wsServerError = ''

View File

@ -51,8 +51,9 @@ class OB11Http {
this.expressAPP.get('/', (req: Request, res: Response) => {
res.send(`LLOneBot server 已启动`)
})
this.server = this.expressAPP.listen(this.config.port, '0.0.0.0', () => {
this.ctx.logger.info(`HTTP server started 0.0.0.0:${this.config.port}`)
const host = this.config.listenLocalhost ? '127.0.0.1' : '0.0.0.0'
this.server = this.expressAPP.listen(this.config.port, host, () => {
this.ctx.logger.info(`HTTP server started ${host}:${this.config.port}`)
})
llonebotError.httpServerError = ''
} catch (e: any) {
@ -136,6 +137,7 @@ namespace OB11Http {
port: number
token?: string
actionMap: Map<string, BaseAction<any, any>>
listenLocalhost: boolean
}
}

View File

@ -21,9 +21,14 @@ class OB11WebSocket {
public start() {
if (this.wsServer) return
this.ctx.logger.info(`WebSocket server started 0.0.0.0:${this.config.port}`)
const host = this.config.listenLocalhost ? '127.0.0.1' : '0.0.0.0'
this.ctx.logger.info(`WebSocket server started ${host}:${this.config.port}`)
try {
this.wsServer = new WebSocketServer({ port: this.config.port, maxPayload: 1024 * 1024 * 1024 })
this.wsServer = new WebSocketServer({
host,
port: this.config.port,
maxPayload: 1024 * 1024 * 1024
})
llonebotError.wsServerError = ''
} catch (e: any) {
llonebotError.wsServerError = '正向 WebSocket 服务启动失败, ' + e.toString()
@ -165,6 +170,7 @@ namespace OB11WebSocket {
heartInterval: number
token?: string
actionMap: Map<string, BaseAction<any, any>>
listenLocalhost: boolean
}
}

View File

@ -166,7 +166,12 @@ async function onSettingWindowCreated(view: Element) {
SettingItem(
'快速操作回复自动引用原消息',
null,
SettingSwitch('ob11.enableQOAutoQuote', config.ob11.enableQOAutoQuote, { 'control-display-id': 'config-ob11-enableQOAutoQuote' }),
SettingSwitch('ob11.enableQOAutoQuote', config.ob11.enableQOAutoQuote),
),
SettingItem(
'HTTP、正向 WebSocket 服务仅监听 127.0.0.1',
'而不是 0.0.0.0',
SettingSwitch('ob11.listenLocalhost', config.ob11.listenLocalhost),
),
SettingItem('', null, SettingButton('保存', 'config-ob11-save', 'primary')),
]),