使用标准库
公告
站点迁移啦~!
为什么迁移?
作为由我们官方维护的组件库,分散在各自的文档站点中的确有好处:它们可以各自维护自己所需的东西、互不干扰。
但是缺点也很明显: 太过分散。
组件库与核心库之间的关系是比较紧密的, 我们希望你能够在一个站点内就可以查阅或搜索到所有你想要得知的信息。
适用场景
当你不确定自己的应用场景是否应该选择 直接使用 标准库模块时, 这里为你提供了一些参考:
适用
你希望有一个 Bot 实现,它可以支持订阅事件、管理网络连接的生命周期、可以注册事件处理逻辑、替你接收事件,并进行处理/调度。
你不需要太多额外的功能,例如处理事件时,如果你想要发消息,那么自行构建 API 模块中提供的实现。
你不需要多组件协同。
你不需要 Simple Robot 标准库提供的任何功能。
不适用
你希望使用 Simple Robot 标准库提供的功能。
你希望使用一个有更多高级功能封装的库,而不是一个仅有基础功能的库。例如处理事件时,你只需要组装好消息文本或封装好的消息元素对象 ,并简单的调用
send
即可发送,不需要自行构建 API、自行发送请求。你希望能够支持多组件协同。
你希望使用支持 Spring Boot 的库。
安装
引擎选择
- Ktor引擎
你可以前往 Ktor文档 处选择一个对应所用平台下合适的
Client Engine
。 这里会根据不同平台提供几个示例,你可以选择其他可用目标。CIO 是一个比较通用的引擎。 在不知道选什么的情况下,可以考虑使用它。
runtimeOnly("io.ktor:ktor-client-cio-jvm:$ktor_version")runtimeOnly 'io.ktor:ktor-client-cio-jvm:$ktor_version'<dependency> <groupId>io.ktor</groupId> <artifactId>ktor-client-cio-jvm</artifactId> <version>${ktor_version}</version> <scope>runtime</scope> </dependency>如果你打算使用 Java11+,也可以选择 Java 引擎。
runtimeOnly("io.ktor:ktor-client-java:$ktor_version")runtimeOnly 'io.ktor:ktor-client-java:$ktor_version'<dependency> <groupId>io.ktor</groupId> <artifactId>ktor-client-java-jvm</artifactId> <version>${ktor_version}</version> <scope>runtime</scope> </dependency>JavaScript 平台下可以选择 Js 引擎。
implementation("io.ktor:ktor-client-js:$ktor_version")implementation 'io.ktor:ktor-client-js:$ktor_version'native 平台目标下,可能需要根据不同的平台类型选择不同的引擎。
可以选择 WinHttp 引擎。
implementation("io.ktor:ktor-client-winhttp:$ktor_version")implementation 'io.ktor:ktor-client-winhttp:$ktor_version'Linux 下依旧可以选择 CIO 引擎。
implementation("io.ktor:ktor-client-cio:$ktor_version")implementation 'io.ktor:ktor-client-cio:$ktor_version'可以选择 Darwin 引擎。
implementation("io.ktor:ktor-client-darwin:$ktor_version")implementation 'io.ktor:ktor-client-darwin:$ktor_version'
使用
KOOK组件的标准库模块在 API模块 的基础之上提供了构建 Bot、订阅并处理事件的能力。