Files
NeoBot/docs/core-concepts/architecture.md
K2cr2O1 7f331970dd docs: 更新文档内容,简化语言并修正格式
- 简化插件开发指南中的描述,移除冗余内容
- 调整部署文档中的Python版本说明
- 优化最佳实践文档的措辞和格式
- 更新性能优化文档,删除不准确的数据
- 重构核心概念文档,使用更简洁的语言
- 修正README中的项目描述和技术栈说明
- 更新快速上手文档,简化安装步骤
- 调整事件流转文档的描述方式
- 简化架构文档内容
- 更新指令处理文档,添加参数注入示例
- 优化单例管理器文档的表述
2026-01-13 04:49:03 +08:00

1.6 KiB
Raw Blame History

骨架

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 请求都用连接池