Skip to content
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
zh-CN en-US

前言

入门指南

进阶指南

Clone this wiki locally