# 介绍

zhamao-framework 由 php-swoole 构建而来,主要面向 API 服务,聊天机器人(CQHTTP 对接),包含 websocket、http 等监听和请求库,用户代码采用模块化处理,可以方便地编写各类功能。

框架主要用途为 HTTP 服务器,机器人搭建框架。尤其对于 QQ 机器人消息处理较为方便和全面,提供了众多会话机制和内部调用机制,可以以各种方式设计你自己的模块。

在 HTTP 和 WebSocket 服务器上,PHP 的扩展 Swoole 提供了高性能的支持,使其效率可媲美 nginx 静态网页处理的效率。

此外,QQ 机器人方面此框架基于 CQHTTP 的反向 WebSocket 连接,比传统 HTTP 通信更快,未来也会兼容微信公众号开发者模式。

# 开始前

因为框架采用的是 Swoole 的方式来运作的,所以和传统的 php-fpm 处理机制 完全不同。你可以参考 Python 的 aiocqhttp (opens new window) SDK,运行方式为 cli 环境。

在项目运行过程中,会启动 Master、Reactor、Worker 和 TaskWorker 多个进程,在一般情况下,你不需要知道这些进程是什么,有什么区别,除非想学习进程间通信和将框架设为多进程运行模式(框架默认采用单进程多协程运行)。

若使用本框架作为机器人框架的话,建议将本框架部署到和 酷Q 所在同一台服务器上,以减少延迟和断链等网络问题带来的效率影响。

给开发者的提示

本文档的 指南 部分是对框架内各个部分的详细说明,请仔细阅读指南的各个部分后,根据自己的需要选择阅读 框架组件注解事件 部分。如果对框架还迷糊,可以在阅读完 指南 部分后阅读 进阶 篇,去了解怎么完成一个功能。

# 框架特色

  • 支持MySQL数据库(连接池),自带查询缓存提高多查询时的效率
  • Websocket 服务器、HTTP 服务器兼容运行,一个框架多个用处
  • 支持命令、自然语言处理等多种插件形式
  • 支持多个机器人账号负载均衡
  • 协程 + TaskWorker 进程重度任务处理机制,保证高效,单个请求响应时间为 0.1 ms 左右
  • 模块分离和自由组合,可根据自身需求自己建立模块内的目录结构和代码结构
  • 灵活的注释注解注册事件方式,弥补 PHP 语言缺少注解的遗憾
上次更新: 5/8/2020, 6:43:38 PM