- 简化插件开发指南中的描述,移除冗余内容 - 调整部署文档中的Python版本说明 - 优化最佳实践文档的措辞和格式 - 更新性能优化文档,删除不准确的数据 - 重构核心概念文档,使用更简洁的语言 - 修正README中的项目描述和技术栈说明 - 更新快速上手文档,简化安装步骤 - 调整事件流转文档的描述方式 - 简化架构文档内容 - 更新指令处理文档,添加参数注入示例 - 优化单例管理器文档的表述
56 lines
1.6 KiB
Markdown
56 lines
1.6 KiB
Markdown
# 骨架
|
||
|
||
Neobot是面向内部开发者的,我会开源,但是写的很烂。。。
|
||
|
||
## 1. 动力核心
|
||
|
||
### Python 3.14 + JIT
|
||
镀铬酸钾创项目的时候用的 Python 3.14 3.14兼容JIT,那就这样吧
|
||
* **何原理**: 提前编译了源代码,
|
||
* **何用途**: 密集CPU运算能提升一些
|
||
|
||
### Mypyc 编译 (AOT)
|
||
光 JIT 还不够。。核心模块(`core/ws.py`, `core/managers/*.py`)我编译成了C扩展
|
||
* **何原理**: 因为这个项目有很多类型提示,然后我就编译成C库了。。。
|
||
* **何用途**: WS和manager下边的模块都是机器码运行,或许会快一些。。。
|
||
|
||
### 异步 IO 模型
|
||
* **Linux**: uvloop
|
||
* **Windows**:IOCP
|
||
* *注*: `winloop` 死了,会和面具打架。。。
|
||
|
||
## 2. 连接模式
|
||
|
||
### 正向 WebSocket 模式
|
||
这是一种简单直接的模式
|
||
|
||
* **主动出击 (Client)**: Bot 是个客户端
|
||
* **好处**: 你电脑能上网就行(实际上是因为没公网ip哈。。。)
|
||
|
||
```mermaid
|
||
graph LR
|
||
subgraph Local [你的电脑/服务器]
|
||
Bot[NEO Bot]
|
||
Browser[Playwright 页面池]
|
||
end
|
||
|
||
subgraph Remote [外部]
|
||
NapCat[NapCatQQ]
|
||
end
|
||
|
||
Bot -- "WebSocket (主动连接)" --> NapCat
|
||
Bot -- "内部调用" --> Browser
|
||
```
|
||
|
||
## 3. 资源管理
|
||
|
||
### 单例管理器
|
||
所有东西(指令、权限、浏览器、图片)都是全局独一份的。
|
||
* **随叫随到**: 在哪都能直接 `import`
|
||
* **绝对权威**: 全局就一份数据
|
||
|
||
### 资源池化
|
||
别几把开多个实例。。。
|
||
* **Browser Pool**: 浏览器页面提前开好,用完洗干净放回去
|
||
* **Connection Pool**: Redis 和 HTTP 请求都用连接池
|