- 简化插件开发指南中的描述,移除冗余内容 - 调整部署文档中的Python版本说明 - 优化最佳实践文档的措辞和格式 - 更新性能优化文档,删除不准确的数据 - 重构核心概念文档,使用更简洁的语言 - 修正README中的项目描述和技术栈说明 - 更新快速上手文档,简化安装步骤 - 调整事件流转文档的描述方式 - 简化架构文档内容 - 更新指令处理文档,添加参数注入示例 - 优化单例管理器文档的表述
1.6 KiB
1.6 KiB
骨架
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哈。。。)
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 请求都用连接池