zhamao-framework/README.md

133 lines
4.7 KiB
Markdown
Raw Normal View History

2018-03-27 20:54:31 +08:00
# CQBot-swoole
2018-11-28 20:12:05 +08:00
[![作者QQ](https://img.shields.io/badge/作者QQ-627577391-orange.svg)]()
[![license](https://img.shields.io/badge/license-MIT-blue.svg)]()
2019-02-09 14:00:39 +08:00
[![版本](https://img.shields.io/badge/version-2019.2.9-green.svg)]()
2018-11-28 20:12:05 +08:00
2019-02-09 14:00:39 +08:00
一个异步、多平台兼容的**聊天机器人**框架。
2018-11-28 20:12:05 +08:00
2019-02-09 14:00:39 +08:00
## CQBot-swoole 文档
本项目的文档正在努力编写中:[https://cqbot.crazywhale.org/](https://cqbot.crazywhale.org/)
2018-11-28 20:12:05 +08:00
## 什么是Swoole
2019-02-09 14:00:39 +08:00
PHP原生对多线程、多进程、异步等特性支持不是很好有了Swoole你可以非常简单自由地写出优雅的高性能服务器。
本项目原生支持多机器人连接故选择了反向Websocket连接方式。同时更适用于高并发、多机器人同时连接以及对接**微信公众号**和**web前端**等场景。
2018-11-28 20:12:05 +08:00
[Swoole官网](https://www.swoole.com/)
## 框架简介
2019-02-09 14:00:39 +08:00
cqbot-swwole是一个聊天机器人框架同时兼容酷Q需安装[cqhttp插件](https://cqhttp.cc)微信公众号支持多QQ账号对接。
2018-11-28 20:12:05 +08:00
2019-02-09 14:00:39 +08:00
## 特点
- 多账号单后端式框架
- 采用模块式编写,功能之间独立性高,可分别开关各个模块和设置响应优先级
- 全局缓存,随处使用
- 协程开发,传统同步写法实现高并发
- 除swoole外不依赖composer其他项目
- 自带HTTP、websocket服务器可对接其他服务
- 支持协程MySQL
2018-11-28 20:12:05 +08:00
## 环境部署
2019-02-09 14:00:39 +08:00
### 酷Q和HTTP API插件
由于框架是独立于酷Q运行的故你可以在多台主机上部署酷Q的docker。
2018-11-28 20:12:05 +08:00
2018-12-29 15:05:51 +08:00
如果你是新用户或重新安装含有HTTPAPI插件的**酷Q-Docker**的话可以在你需要部署酷Q的Linux主机下使用下面的脚本快速构建酷Q环境此脚本会引导进行相关的cqhttp插件设置。每台部署酷Q的主机均可直接使用下方的命令服务器需要提前安装Docker
2018-11-28 20:12:05 +08:00
```shell
2018-12-29 15:05:51 +08:00
#第一次部署酷Q-httpapi docker运行下面的代码
2019-02-09 14:00:39 +08:00
sh -c "$(wget https://raw.githubusercontent.com/crazywhalecc/cqbot-swoole/master/start-coolq.sh -O -)"
2018-12-29 15:05:51 +08:00
#以后每次启动/停止/重启酷Q容器执行的命令
docker start coolq
docker stop coolq
docker restart coolq
#以上指令非root用户可能需要sudo
2018-11-28 20:12:05 +08:00
```
2019-02-09 14:00:39 +08:00
### 微信公众号
很快将兼容微信公众平台,敬请期待。
2018-11-28 20:12:05 +08:00
## 框架部署
### 手动安装到Linux主机上
``` shell
2018-12-29 12:15:45 +08:00
# 安装PHPubuntu/debian
apt-get install software-properties-common
add-apt-repository ppa:ondrej/php
2018-11-28 20:12:05 +08:00
apt-get update
apt-get install php7.2 php7.2-dev php7.2 php7.2-mbstring php7.2-json php7.2 php-pear
2018-12-29 12:15:45 +08:00
#安装PHPCentOS
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum makecache fast
yum install php72w-devel.x86_64 php72w-mbstring.x86_64 php72w-pear.noarch gcc gcc-c++ -y
2018-11-28 20:12:05 +08:00
# 安装Swoole
pecl install swoole
2018-12-29 12:15:45 +08:00
echo "extension=swoole.so" >> $(php -i | grep "Loaded Configuration File" | awk '{print $5}')
2018-11-28 20:12:05 +08:00
# 部署框架
2019-02-09 14:00:39 +08:00
git clone https://github.com/crazywhalecc/cqbot-swoole.git
2018-11-28 20:12:05 +08:00
# 以上指令可能需要sudo执行
```
2019-01-31 23:12:03 +08:00
### 使用Docker快速构建并启动
2018-11-28 20:12:05 +08:00
``` shell
2019-01-31 23:12:03 +08:00
sudo docker run -it --rm --net=host --name cqbot -v $(pwd)/cqbot/:/root/ jesse2061/cqbot-swoole
2019-02-09 14:00:39 +08:00
# 可以将命令添加为alias方便以后快速启动
2019-02-10 18:07:29 +08:00
echo "alias cqbot='sudo docker run -it --rm --net=host --name cqbot -v $(pwd)/cqbot/:/root/ jesse2061/cqbot-swoole'" >> ~/.bash_profile
source ~/.bash_profile
2019-02-09 14:00:39 +08:00
cqbot
2018-11-28 20:12:05 +08:00
```
## 启动
2018-12-29 12:15:45 +08:00
#### 直接安装后启动框架
2018-11-28 20:12:05 +08:00
```shell
2019-02-09 14:00:39 +08:00
cd cqbot-swoole/
2018-11-28 20:12:05 +08:00
php start.php
```
#### 在screen中运行框架
```shell
2019-01-31 23:12:03 +08:00
screen -R cqbot
2019-02-09 14:00:39 +08:00
cd cqbot-swoole/
php start.php
2019-01-31 23:12:03 +08:00
# Ctrl A + D 将screen放到后台运行
2018-11-28 20:12:05 +08:00
```
#### 使用Docker在screen中运行框架
```shell
2019-01-31 23:12:03 +08:00
screen -R cqbot
sudo docker run -it --rm --net=host --name cqbot -v $(pwd)/cqbot/:/root/ jesse2061/cqbot-swoole
# Ctrl A + D 将screen放到后台运行
2018-11-28 20:12:05 +08:00
```
2018-12-03 11:37:09 +08:00
2019-01-31 23:19:53 +08:00
## MacOS与Windows兼容性
2019-02-09 14:00:39 +08:00
#### MacOS下运行cqbot-swoole
2019-01-31 23:19:53 +08:00
mac下运行和Linux整体相同使用brew安装好PHP后通过源码编译`swoole`组件安装或使用docker。
> Docker for mac 运行需要手动指定端口`-p 20000:20000`,不能使用`--net=host`网络模式。
2019-02-09 14:00:39 +08:00
#### Windows下运行cqbot-swoole
2019-01-31 23:19:53 +08:00
因为swoole使用了Linux的特性故**不推荐**在Windows电脑或服务器使用Windows可以使用Docker运行或使用`cygwin`环境。
> 不推荐原因有不能使用`reload`指令进行重启服务和不能使用全部的swoole特性。
2018-12-03 11:37:09 +08:00
## 关于
2019-01-31 23:19:53 +08:00
框架和SDK部分代码直接从**炸毛机器人**中移植而来炸毛机器人3290004669是作者写的一个高性能的机器人曾获全国计算机设计大赛一等奖。
2018-12-03 11:37:09 +08:00
2018-12-29 12:15:45 +08:00
欢迎随时在HTTP-API插件群提问当然更好的话可以加作者QQ627577391或提交issue进行疑难解答。
2019-01-31 23:19:53 +08:00
本项目在有更新内容时请及时关注GitHub的动态更新前请将自己的模块代码做好备份。