Go生态里的QQ机器人框架,目前最活跃的是"go-cqhttp"(原CQP)和基于它的封装。相比PHP框架,Go版本在并发、内存和部署上都有明显优势,适合长期运行的服务端机器人。
快速开始
环境要求
- Go 1.21+
- 一个QQ号(建议小号)
- 一台有公网IP或内网穿透的服务器
核心流程
- 下载go-cqhttp二进制或编译源码
- 配置device.json和config.yaml
- 启动go-cqhttp,它会把QQ协议转换成HTTP/WebSocket事件
- 你的Go程序通过HTTP API发消息,通过WebSocket接收事件
推荐框架
go-cqhttp + 自写逻辑
最灵活的方式。直接用go-cqhttp做协议层,自己写消息处理逻辑。适合有Go基础的开发者。
MiraiGo
另一个流行的QQ协议实现,API设计更面向对象。如果你喜欢类似PHP框架的写法,MiraiGo的封装会更舒服。
QQBotGo / 类似封装
有些框架把go-cqhttp和消息处理封装在一起,提供插件系统。适合快速开发,不用自己处理WebSocket重连、心跳等细节。
开发要点
消息事件
框架会把消息转成统一的结构体,通常包含:
- 消息类型(群消息/私聊/频道)
- 发送者信息(QQ号、群名片、权限)
- 消息内容(文本、图片、At)
- 消息ID(用于回复或撤回)
回复消息
一般调用一个HTTP接口,传入消息ID和回复内容。图片需要先上传到临时图床,拿到URL后再发送。
插件化设计
建议把功能拆成独立插件:
- 基础插件:自动回复、关键词触发
- 管理插件:踢人、禁言、公告
- 娱乐插件:签到、积分、小游戏
- 工具插件:词云、天气、RSS订阅
部署建议
- 用systemd或supervisord管理进程
- 日志输出到文件,方便排查问题
- 敏感词/广告过滤放在插件层,不要依赖框架本身
- 高峰期注意go-cqhttp的连接数限制,可能需要开多个实例
相比PHP框架,Go版本的QQ机器人更稳定、更省资源,适合24小时在线。如果你已经会Go,直接上手go-cqhttp是最快路径。