2020-10-11 13:17:40 +08:00
|
|
|
---
|
|
|
|
contentSidebar: true
|
|
|
|
sidebarDepth: 0
|
|
|
|
---
|
|
|
|
|
|
|
|
# NoneBot.drivers 模块
|
|
|
|
|
|
|
|
## 后端驱动适配基类
|
|
|
|
|
|
|
|
各驱动请继承以下基类
|
|
|
|
|
|
|
|
|
2020-12-07 00:52:26 +08:00
|
|
|
## _class_ `Driver`
|
2020-10-11 13:17:40 +08:00
|
|
|
|
|
|
|
基类:`abc.ABC`
|
|
|
|
|
|
|
|
Driver 基类。将后端框架封装,以满足适配器使用。
|
|
|
|
|
|
|
|
|
|
|
|
### `_adapters`
|
|
|
|
|
|
|
|
|
|
|
|
* **类型**
|
|
|
|
|
|
|
|
`Dict[str, Type[Bot]]`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* **说明**
|
|
|
|
|
|
|
|
已注册的适配器列表
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-12-28 13:57:28 +08:00
|
|
|
### `_ws_connection_hook`
|
|
|
|
|
|
|
|
|
|
|
|
* **类型**
|
|
|
|
|
|
|
|
`Set[T_WebSocketConnectionHook]`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* **说明**
|
|
|
|
|
|
|
|
WebSocket 连接建立时执行的函数
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### `_ws_disconnection_hook`
|
|
|
|
|
|
|
|
|
|
|
|
* **类型**
|
|
|
|
|
|
|
|
`Set[T_WebSocketDisconnectionHook]`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* **说明**
|
|
|
|
|
|
|
|
WebSocket 连接断开时执行的函数
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-10-11 13:17:40 +08:00
|
|
|
### _abstract_ `__init__(env, config)`
|
|
|
|
|
2020-10-16 01:10:46 +08:00
|
|
|
|
|
|
|
* **参数**
|
|
|
|
|
|
|
|
|
|
|
|
* `env: Env`: 包含环境信息的 Env 对象
|
|
|
|
|
|
|
|
|
|
|
|
* `config: Config`: 包含配置信息的 Config 对象
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### `env`
|
|
|
|
|
|
|
|
|
|
|
|
* **类型**
|
|
|
|
|
|
|
|
`str`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* **说明**
|
|
|
|
|
|
|
|
环境名称
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### `config`
|
|
|
|
|
|
|
|
|
|
|
|
* **类型**
|
|
|
|
|
|
|
|
`Config`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* **说明**
|
|
|
|
|
|
|
|
配置对象
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### `_clients`
|
|
|
|
|
|
|
|
|
|
|
|
* **类型**
|
|
|
|
|
|
|
|
`Dict[str, Bot]`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* **说明**
|
|
|
|
|
|
|
|
已连接的 Bot
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### _classmethod_ `register_adapter(name, adapter)`
|
|
|
|
|
|
|
|
|
|
|
|
* **说明**
|
|
|
|
|
|
|
|
注册一个协议适配器
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* **参数**
|
|
|
|
|
|
|
|
|
|
|
|
* `name: str`: 适配器名称,用于在连接时进行识别
|
|
|
|
|
|
|
|
|
|
|
|
* `adapter: Type[Bot]`: 适配器 Class
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### _abstract property_ `type`
|
|
|
|
|
|
|
|
驱动类型名称
|
|
|
|
|
|
|
|
|
|
|
|
### _abstract property_ `server_app`
|
|
|
|
|
|
|
|
驱动 APP 对象
|
|
|
|
|
|
|
|
|
|
|
|
### _abstract property_ `asgi`
|
|
|
|
|
|
|
|
驱动 ASGI 对象
|
|
|
|
|
|
|
|
|
|
|
|
### _abstract property_ `logger`
|
|
|
|
|
|
|
|
驱动专属 logger 日志记录器
|
|
|
|
|
|
|
|
|
|
|
|
### _property_ `bots`
|
|
|
|
|
|
|
|
|
|
|
|
* **类型**
|
|
|
|
|
|
|
|
`Dict[str, Bot]`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* **说明**
|
|
|
|
|
|
|
|
获取当前所有已连接的 Bot
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### _abstract_ `on_startup(func)`
|
|
|
|
|
|
|
|
注册一个在驱动启动时运行的函数
|
|
|
|
|
|
|
|
|
|
|
|
### _abstract_ `on_shutdown(func)`
|
|
|
|
|
|
|
|
注册一个在驱动停止时运行的函数
|
|
|
|
|
|
|
|
|
2020-12-28 13:57:28 +08:00
|
|
|
### `on_bot_connect(func)`
|
|
|
|
|
|
|
|
|
|
|
|
* **说明**
|
|
|
|
|
|
|
|
装饰一个函数使他在 bot 通过 WebSocket 连接成功时执行。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* **函数参数**
|
|
|
|
|
|
|
|
|
|
|
|
* `bot: Bot`: 当前连接上的 Bot 对象
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### `on_bot_disconnect(func)`
|
|
|
|
|
|
|
|
|
|
|
|
* **说明**
|
|
|
|
|
|
|
|
装饰一个函数使他在 bot 通过 WebSocket 连接断开时执行。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* **函数参数**
|
|
|
|
|
|
|
|
|
|
|
|
* `bot: Bot`: 当前连接上的 Bot 对象
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### `bot_connect(bot)`
|
|
|
|
|
|
|
|
在 WebSocket 连接成功后,调用该函数来注册 bot 对象
|
|
|
|
|
|
|
|
|
|
|
|
### `bot_disconnect(bot)`
|
|
|
|
|
|
|
|
在 WebSocket 连接断开后,调用该函数来注销 bot 对象
|
|
|
|
|
|
|
|
|
2020-10-16 01:10:46 +08:00
|
|
|
### _abstract_ `run(host=None, port=None, *args, **kwargs)`
|
|
|
|
|
|
|
|
|
|
|
|
* **说明**
|
|
|
|
|
|
|
|
启动驱动框架
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* **参数**
|
|
|
|
|
|
|
|
|
|
|
|
* `host: Optional[str]`: 驱动绑定 IP
|
|
|
|
|
|
|
|
|
|
|
|
* `post: Optional[int]`: 驱动绑定端口
|
|
|
|
|
|
|
|
|
|
|
|
* `*args`
|
|
|
|
|
|
|
|
|
|
|
|
* `**kwargs`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### _abstract async_ `_handle_http()`
|
|
|
|
|
|
|
|
用于处理 HTTP 类型请求的函数
|
|
|
|
|
|
|
|
|
|
|
|
### _abstract async_ `_handle_ws_reverse()`
|
|
|
|
|
|
|
|
用于处理 WebSocket 类型请求的函数
|
|
|
|
|
|
|
|
|
2020-12-07 00:52:26 +08:00
|
|
|
## _class_ `WebSocket`
|
2020-10-16 01:10:46 +08:00
|
|
|
|
|
|
|
基类:`object`
|
|
|
|
|
|
|
|
WebSocket 连接封装,统一接口方便外部调用。
|
|
|
|
|
|
|
|
|
|
|
|
### _abstract_ `__init__(websocket)`
|
|
|
|
|
|
|
|
|
|
|
|
* **参数**
|
|
|
|
|
|
|
|
|
|
|
|
* `websocket: Any`: WebSocket 连接对象
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### _property_ `websocket`
|
|
|
|
|
|
|
|
WebSocket 连接对象
|
|
|
|
|
|
|
|
|
|
|
|
### _abstract property_ `closed`
|
|
|
|
|
|
|
|
|
|
|
|
* **类型**
|
|
|
|
|
|
|
|
`bool`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* **说明**
|
|
|
|
|
|
|
|
连接是否已经关闭
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### _abstract async_ `accept()`
|
|
|
|
|
|
|
|
接受 WebSocket 连接请求
|
|
|
|
|
|
|
|
|
|
|
|
### _abstract async_ `close(code)`
|
|
|
|
|
|
|
|
关闭 WebSocket 连接请求
|
|
|
|
|
|
|
|
|
|
|
|
### _abstract async_ `receive()`
|
|
|
|
|
|
|
|
接收一条 WebSocket 信息
|
|
|
|
|
|
|
|
|
|
|
|
### _abstract async_ `send(data)`
|
|
|
|
|
|
|
|
发送一条 WebSocket 信息
|