Simple Robot | KOOK v4.0.0-beta4 Help

BOT配置文件

本章节会提供 bot 的配置文件中各属性的含义以及示例。

:::info 场景

bot 的配置文件通常应用于多组件应用或 Spring Boot 项目中。

对于使用Kotlin、不使用SpringBoot的开发者,也可以选择直接使用代码的形式进行配置。

:::

示例

完整示例:

{ "component": "simbot.kook", "ticket": { "clientId": "Your client ID", "token": "Your ws token" }, "config": { "isCompress": true, "syncPeriods": { "guild": { "syncPeriod": 180000, "batchDelay": 0 }, "clientEngineConfig": { "threadsCount": null, "pipelining": null }, "wsEngineConfig": { "threadsCount": null, "pipelining": null }, "timeout": { "connectTimeoutMillis": 5000, "requestTimeoutMillis": 5000, "socketTimeoutMillis": null }, "wsConnectTimeout": null, "isNormalEventProcessAsync": null } } }

最简示例:

{ "component": "simbot.kook", "ticket": { "clientId": "Your client ID", "token": "Your ws token" } }

属性描述

component

固定值 simbot.kook必填 ,代表此配置文件为KOOK组件的。

ticket

对 bot 身份进行校验、访问 KOOK API 以及连接KOOK服务器进行事件订阅时所需的 bot 票据信息。

:::tip 在哪儿?

可以在 KOOK开发者平台-应用 中查看。

:::

ticket.clientId

BOT的 Client ID

ticket.token

BOT使用 websocket 模式进行连接的 token.

config

其他配置,可选。

config.isCompress

是否压缩数据。默认为 true

config.syncPeriods

缓存对象信息的同步周期配置。

{ "config": { "syncPeriods": { "guild": { "syncPeriod": 180000, "batchDelay": 0 } } } }
syncPeriods.guild

对频道服务器进行同步的周期信息配置,单位毫秒。

syncPeriods.guild.syncPeriod

对频道服务器进行同步的周期,单位毫秒,大于0时有效。目前服务器同步的同时会去同步此服务器下的所有频道列表与成员列表。

默认为 180000 ,即 180000毫秒 -> 180秒 -> 3分钟

进行配置的时候需要注意考虑调用频率上限等相关问题。

syncPeriods.guild.batchDelay

同步数据是分页分批次的同步。 batchDelay 配置每批次后进行挂起等待的时间,单位毫秒。 可以通过调大此参数来减缓 API 的请求速率, 默认不等待。

配置此属性可一定程度上降低触发调用频率限制的风险。

config.clientEngineConfig & config.wsEngineConfig

clientEngineConfigwsEngineConfig 两个配置项类型相同,顾名思义它们分别是针对 API clientws 场景下使用的 HttpClient 实例的引擎(通用)配置项。

它们的配置项都与 Ktor 的 HttpClientEngineConfig 的配置相同,没有额外的含义。

threadsCount

更多参考 Ktor文档

pipelining

更多参考 Ktor文档

config.timeout

BOT内进行API请求时候的超时时间配置。(基于 Ktor HttpTimeout

:::info

timeout 本身为null时,不会覆盖原本的默认配置。但如果 timeout 不为null,则会直接使用此对象内信息直接完整覆盖。

例如:

{ "config": { "timeout": null } }

此时, connectTimeoutMillisrequestTimeoutMillis 都是默认的 5000, 而如果配置是:

{ "config": { "timeout": { } } }

则所有属性都会为 null

:::

connectTimeoutMillis

更多参考 Ktor HttpTimeout

requestTimeoutMillis

更多参考 Ktor HttpTimeout

socketTimeoutMillis

更多参考 Ktor HttpTimeout

config.wsConnectTimeout

ws连接超时时间,单位 ms 。默认为 6000 毫秒。

config.isNormalEventProcessAsync

ProcessorType.NORMAL 类型的事件处理器是否在异步中执行。默认为 true。 当为 false 时, NORMAL 的表现效果将会与 PREPARE 基本类似。

:::note

如果你不打算直接操作原始的 Bot 对象来注册一些原始的监听函数, 此配置项对你来说可能就没有太大的作用。

:::

Last modified: 07 August 2024