# Coolpy7技术手册

## Coolpy7技术手册

- [COOLPY7千万级MQTT消息服务器](https://coolpy7.gitbook.io/coolpy7book/master.md): (Coolpy7 MQTT Broker) 是基于 Golang 语言开发，跨平台技术支持发布运行(Linux,Mac,Android,OpenWRT等操作系统\[Windows系统需要通过Docker进行部署])并支持CPU(X86,AMD64,ARM,MIPS等等，正在开始支持RISC-V架构)，支持大规模连接和分布式集群，发布订阅模式的 MQTT 消息服务器。
- [Coolpy7消息服务器简介](https://coolpy7.gitbook.io/coolpy7book/kai-shi-shi-yong/start.md)
- [一分钟运行 Coolpy7](https://coolpy7.gitbook.io/coolpy7book/kai-shi-shi-yong/yi-fen-zhong-xia-zai-qi-dong-coolpy7.md)
- [单机千万级连接测试](https://coolpy7.gitbook.io/coolpy7book/kai-shi-shi-yong/dan-ji-qian-wan-ji-lian-jie-ce-shi-shuo-ming.md): 目标：测试创建1000万客户端连接到服务器端，服务器操作系统 Linux(任意一款发行版服务器版本)。分别在两台硬件一样的服务器，其中一台用于服务器端运行，另一台用于创建千万客户端连接客户端机器。在硬件一致的情况下请确保网络设备达到相关测试要求，例如万兆网络等等。
- [消息并发压力测试](https://coolpy7.gitbook.io/coolpy7book/kai-shi-shi-yong/xiao-xi-bing-fa-ya-li-ce-shi.md)
- [部署架构](https://coolpy7.gitbook.io/coolpy7book/kai-shi-shi-yong/bu-shu-jia-gou-deployment.md): CP7 消息服务器集群可作为物联网接入服务(IoT Hub)，部署在青云、AWS、阿里等公有云或企业私有云平台。
- [程序安装](https://coolpy7.gitbook.io/coolpy7book/kai-shi-shi-yong/cheng-xu-an-zhuang-installation.md): CP7 消息服务器可跨平台运行在 Linux、FreeBSD、Mac OS X 或 Windows(Docker) 服务器上。
- [分布式集群](https://coolpy7.gitbook.io/coolpy7book/kai-shi-shi-yong/fen-bu-ji-qun.md): Coolpy7分布式技术，支持多个Coolpy7 Core提供跨数据中心（多活）模式组建群集，支持群集零手动维护（基于Gossip分布式协议作为群集节点状态维护）。Coolpy7从版本号V7.3.2.3开始支持本功能。请到Coolpy7之github项目release下载相关版本https://github.com/Coolpy7/Coolpy7/releases。也可以通过docker安装。
- [Docker部署CP7(Win\&Linux)](https://coolpy7.gitbook.io/coolpy7book/kai-shi-shi-yong/docker-bu-shu-windows-yun-hang-cp7.md): Coolpy7内核由于使用Epoll技术，所以系统默认支持Linux或MacOS等基于unix内核的操作系统，因此如需要在windows系统中运行Coolpy7需要通过Docker技术进行虚拟化环境部署。因此本手册只说明如何在windows中通过docker容器技术部署运行Coolpy7，理论上所有Windows系统只要能正常安装docker都可正常，并且适用所docker为基础的应用场境
- [消息通信功能测试](https://coolpy7.gitbook.io/coolpy7book/kai-shi-shi-yong/xi-tong-gong-neng-yan-zheng.md): 本章介绍如何用MQTT客户端工具验证系统功能
- [DbPoxy代理服务](https://coolpy7.gitbook.io/coolpy7book/kai-shi-shi-yong/dbpoxy.md): IOT应用场境中最常见的是传感器数据上传到数据库，而DbPoxy即为此类应用提供了低构建成本的解决方案，配合Coolpy Gen Protocol(CGP)物联网(IOT)通用控制协议实现平台即服务的低技术成本解决方案。
- [内核功能扩展](https://coolpy7.gitbook.io/coolpy7book/kai-shi-shi-yong/nei-he-gong-neng-kuo-zhan-xin-ban.md): 针对CP7的内核功能扩展需要使用此功能进行相关开发，如用户登入Coolpy7 mqtt borker的身份验证，扩展消息记录到数据库等功能时。微服务作为一种更适合Coolpy7的技术架构，经过我时间的技术选型和性能测试，最终选定了CoAP作为扩展服务协议。
- [规则引擎](https://coolpy7.gitbook.io/coolpy7book/kai-shi-shi-yong/gui-ze-yin-qing.md): 通过简易的规则编码，实现消息转义，转发等功能。此功能从Coolpy7之v7.3.5.0版本开始支持。
- [启动参数及内核特殊功能](https://coolpy7.gitbook.io/coolpy7book/kai-shi-shi-yong/qi-dong-can-shu.md): CP7启动参数说明
- [功能性API接口说明](https://coolpy7.gitbook.io/coolpy7book/kai-shi-shi-yong/gong-neng-xing-api-jie-kou-shuo-ming.md): 当coolpy7启动时，在没有改变相关启动参数的前提下，coolpy7会启动本api服务在8081端口。默认的登陆账号为admin，密码为coolpy7。如需修改登陆可在启动参数使用 -syst=xxxx设置。已对接完成的前端项目已开源于：https://github.com/Coolpy7/admin
- [使用JWT身份验证](https://coolpy7.gitbook.io/coolpy7book/kai-shi-shi-yong/shi-yong-jwt-shen-fen-yan-zheng.md): 当业务不需要任何扩展需求时（无需通过扩展服务做更多复杂功能时），我们只需要限制连接用户是否合法的情况下，我们只需要启用Coolpy7内核（v7.3.2.9或更高版本）进行快捷的身份合法性身份验证。
- [消息组播](https://coolpy7.gitbook.io/coolpy7book/kai-shi-shi-yong/xiao-xi-zu-bo.md): 消息组播适应使用于多个客户端只需要某个客户端消费消息成功即完成推送的应用场境，Coolpy7版本要求大于或等于v7.2.0.3
- [HTTP、CoAP推送消息](https://coolpy7.gitbook.io/coolpy7book/kai-shi-shi-yong/http-fa-song-publish-xiao-xi.md): 针对一些下位机或特殊应用场景中无法使用MQTT客户端情况可使用此功能通过HTTP或CoAP协议推送消息到Coolpy7内核进行消息发布。v7.3.2.6开始支持本功能。
- [MQTT-SN代理服务](https://coolpy7.gitbook.io/coolpy7book/kai-shi-shi-yong/mqttsn-dai-li-fu-wu.md): MQTT-SN是作为一种MQTT适应Lora或其他443本地无线通信技术方案的补充协议，基于UDP与MQTT主Borker连接，节点代理网关接收Lora无线终端信息后通过UDP中转给MQTT主Borker
- [客户端SDK示例库](https://coolpy7.gitbook.io/coolpy7book/kai-shi-shi-yong/ke-hu-duan-sdk.md): 多种技术客户端示例 APP(Android,Flutter);后端(Golang,Java,Nodejs,Python3,C#);前端(Electron,React,Vue,微信小程序,WebSocket);单片机(ESP8266)
- [常见问题总汇](https://coolpy7.gitbook.io/coolpy7book/kai-shi-shi-yong/chang-jian-wen-ti-zong-hui.md)
- [CGP协议](https://coolpy7.gitbook.io/coolpy7book/cgpcoolpy-general-protocol-tong-yong-iot-wu-lian-wang-kong-zhi-xie-yi-1/untitled.md): 物联网应用中除了通信层技术提供高并发高连接通信技术外，还需要一种可以跨技术语言的通信控制协议。例如某个传感器要上传一次原信息到物联网云平台中记录，或者针对某个终端设备（灯、门等）发送一个控制开关指令操作。CGP协议全称：Coolpy General Protocol (中文: Coolpy通用协议)
- [CGP协议安全模式](https://coolpy7.gitbook.io/coolpy7book/cgpcoolpy-general-protocol-tong-yong-iot-wu-lian-wang-kong-zhi-xie-yi-1/cgp-xie-yi-an-quan-mo-shi.md): 安全模式与协议正常模式本质区别是，正常模式下所有数据库操作指令均由协议消息体直接操作数据库，而安全模式下数据库操作协议在DbPoxy下预先定义好数据库操作定义后由CGP协议消息指明预定义操作ID进行数据库操作及参数传入从而达到消息安全级别更高。
- [用户中心](https://coolpy7.gitbook.io/coolpy7book/oauth2-yong-hu-zhong-xin-ying-yong/untitled.md): 基于Mongodb实现的一套OAuth2标准的用户中心系统
- [CP7领域应用指南简略图](https://coolpy7.gitbook.io/coolpy7book/coolpy7-ling-yu-ying-yong-1/untitled.md): 本章介绍Coolpy7可应用于哪些应用领域及相关应用的实现思路
- [使用paho-mqtt.js库实时聊天室](https://coolpy7.gitbook.io/coolpy7book/coolpy7-ling-yu-ying-yong-1/html5+websocket+mqtt-shi-shi-liao-tian-shi.md): 本应用示例使用Coolpy7作为Mqtt服务器并启用Websocket代理完美支持高并发大流量即时通过能力，本示以即时通信聊天为为例。还可以应用到其他软件应用如：网页客服系统、网站信息通知、网页即时通信系统、网页游戏等等
- [微信小程序实时通信聊天室应用](https://coolpy7.gitbook.io/coolpy7book/coolpy7-ling-yu-ying-yong-1/wei-xin-xiao-cheng-xu-shi-shi-tong-xin-liao-tian-shi-ying-yong.md): 本应用示例使用Coolpy7作为Mqtt服务器并启用Websocket代理完美支持高并发大流量即时通过能力，本示以微信小程序即时通信聊天为例。并以阿里云ECS为服务器端缩主架构整套系统。并支持TLS连接通信加密，商业应用安全组别。
- [使用MQTT.js库连接CP7](https://coolpy7.gitbook.io/coolpy7book/coolpy7-ling-yu-ying-yong-1/shi-yong-mqtt.js-ku-lian-jie-cp7.md): 一个优秀的MQTT客户端库，支持小程序和H5等相关应用方向，功能相 当完备，支持qos0,1,2。开源地址https://github.com/mqttjs/MQTT.js
- [Paho.mqtt.golang客户端连接示例](https://coolpy7.gitbook.io/coolpy7book/coolpy7-ling-yu-ying-yong-1/paho.mqtt.golang-ke-hu-duan-lian-jie-shi-li.md): 需注意收SetDefaultPublishHandler对应的Handler func不允许有业务代码阻塞，必须通过channel进行缓冲列表，否则会导致连接不稳定。
- [MQTT协议](https://coolpy7.gitbook.io/coolpy7book/mqtt-xie-yi-ji-chu-zhi-shi/mqtt-xie-yi.md)
- [MQTT-SN 协议](https://coolpy7.gitbook.io/coolpy7book/mqtt-xie-yi-ji-chu-zhi-shi/mqttsn-wang-guan.md)
- [MQTT应用指南](https://coolpy7.gitbook.io/coolpy7book/mqtt-xie-yi-ji-chu-zhi-shi/yong-hu-zhi-nan.md)
