-
Notifications
You must be signed in to change notification settings - Fork 3
Config
sunxyw edited this page Feb 9, 2022
·
4 revisions
别激动,在正式开始开发之前,请先让我介绍一下 LibOB 的配置格式。
LibOB 的构造函数接受一个配置实例,或者说,一个实现了配置接口的类,你可以自行创建一个配置类来实现完全自主的配置管理。当然,那是高级功能,这里说的是 LibOB 内置的配置类。
内置配置类接受一个数组作为参数,数组中需要包含合乎格式的配置信息,而并不关注配置信息的来源。 换言之,你可以使用你喜欢的方式来管理配置,无论是 JSON、PHP 文件、YAML,甚或从 ACM 平台获取配置,只要将配置数组提供给 LibOB 即可。
一个非常简单的实例如下:
$config = new Config($array);
$ob = new OneBot($config);
...
$ob->run();
那么,你可能就要问了,这个所谓的配置数组,应该长什么样呢?让我们先看一段完整的配置:
[
'name' => 'repl',
'platform' => 'qq',
'self_id' => 'REPL-1',
'db' => true,
'logger' => [
'class' => \OneBot\Logger\Console\ConsoleLogger::class,
'level' => 'debug',
],
'driver' => [
'class' => \OneBot\Driver\SwooleDriver::class,
'config' => [],
],
'communications' => [
[
'type' => 'http',
'host' => '127.0.0.1',
'port' => 2345,
'access_token' => '',
'event_enabled' => true,
'event_buffer_size' => 100,
],
[
'type' => 'webhook',
'url' => 'https://example.com/webhook',
'access_token' => '',
'timeout' => 5,
],
[
'type' => 'websocket',
'host' => '127.0.0.1',
'port' => 2346,
'access_token' => '',
],
[
'type' => 'websocket_reverse',
'url' => 'wss://127.0.0.1:2347',
'access_token' => '',
'reconnect_interval' => 5,
],
],
];
其实我觉得光看例子已经能够理解各配置项的作用了
配置项 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
name | 实现名称 | String | 任意字符串 | null |
platform | 实现平台 | String | 任意字符串 | null |
self_id | 机器人ID | String | 任意字符串 | null |
db | 是否启用内置数据库 | Boolean |
true /false
|
true |
logger | 日志相关配置组 | Array | N/A | N/A |
logger.class | 日志实现类 | String | 实现了 Psr\Log\LoggerInterface 接口的类名 |
OneBot\Logger\Console\ConsoleLogger |
logger.level | 日志等级 | String | PSR-3 规定的日志等级 | debug |
driver | 驱动相关配置组 | Array | N/A | N/A |
driver.class | 驱动类 | String | 实现了 OneBot\Driver\Driver 接口的类名目前框架内部支持: OneBot\Driver\SwooleDriver OneBot\Driver\WorkermanDriver
|
null |
driver.config | 驱动配置 | Array | 驱动支持的配置项,见对应驱动的文档 | [] |
communications | 通讯方式配置组 | Array | 包含支持通讯方式的数组,见下表 | [] |
目前支持的通讯方式有以下四种(即 OneBot 12 规定的所有),每种通讯方式的配置都有所差异:
请注意,Workerman 驱动并不支持同时开启 HTTP 和 Websocket 通信方式。
使用 Swoole 驱动时如同时开启了 HTTP 和 Websocket 通信方式,HTTP 的监听端口将会跟随 Websocket 的端口设置。
- HTTP
配置项 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
type | 类型 | String | 必须为 http
|
N/A |
host | 监听地址 | String | 有效的 IP 地址 | 127.0.0.1 |
port | 监听端口 | Integer | 有效的端口号 | 80 |
access_token | 访问令牌 | String | 任意字符串 | null |
event_enabled | 是否启用事件 | Boolean |
true /false
|
true |
event_buffer_size | 事件缓存大小 | Integer | 任意整数 | 0 |
- Webhook
配置项 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
type | 类型 | String | 必须为 webhook
|
N/A |
url | 回调URL | String | 有效的 URL | null |
access_token | 访问令牌 | String | 任意字符串 | null |
timeout | 请求超时时长 | Integer | 任意整数 | 5 |
- WebSocket
配置项 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
type | 类型 | String | 必须为 websocket
|
N/A |
host | 监听地址 | String | 有效的 IP 地址 | 127.0.0.1 |
port | 监听端口 | Integer | 有效的端口号 | 80 |
access_token | 访问令牌 | String | 任意字符串 | null |
- 反向 Websocket
配置项 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
type | 类型 | String | 必须为 websocket_reverse
|
N/A |
url | WS 服务器地址 | String | 有效的 URL | null |
access_token | 访问令牌 | String | 任意字符串 | null |
reconnect_interval | 重连间隔 | Integer | 任意整数` | 5 |