# 微信小程序实时通信聊天室应用

## 应用架构简介

### 系统关系示意

微信小程序->域名转向->（阿里云\[Coolpy7\_ws\_tls=>Coolpy7\_ws代理服务=>Coolpy7核心服务端])由核心服务进行多个客户端消息广播。

### 系统程序架构

1. MQTT服务端程序（Coolpy7)&#x20;
2. WebSocket代理服务端 (Coolpy7\_ws)&#x20;
3. WebSocket TLS代理服务端(Coolpy7\_ws\_tls)
4. 微信小程序聊天室前端 开源地址：<https://github.com/Coolpy7/wxsmallapp>

### 安装与部署

#### 1.阿里云ECS相关配置

本文以ubuntu 16.04为例，并安装好git工具。并配置好域名指向，本例中使用的是i.coolpy.net域名。需要确认系统防火墙放行该端口

由于TLS加密通信代理服务端需要用到域名的证书才可正常通过微信小程序的域名验证，微信小程序在正式发布要要求必需是TLS加密通信通道才可以上线发布。所以先到阿里云下载自己的域名证书。登陆阿里云控制台进入SSL证书功能页->证书购买页

<div align="left"><img src="https://33059891-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LPz4APWKTuf0FRQG1lh%2F-L_FeD0zOOOZdafeE68m%2F-L_FxUUId9C0Ynr3Juwk%2Fimage.png?alt=media&#x26;token=126a3436-2f44-43e9-ba9f-2f4ccf124a4a" alt="进入SSL证书功能"></div>

![选择免费证书并购买](https://33059891-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LPz4APWKTuf0FRQG1lh%2F-L_FeD0zOOOZdafeE68m%2F-L_FxrR4UmpkNUxA6wBd%2Fimage.png?alt=media\&token=d759c256-f89a-44ea-9fd6-3c4d4ee9f3c2)

购买完成后在已签发功能可以下载相应的证书

![](https://33059891-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LPz4APWKTuf0FRQG1lh%2F-L_FeD0zOOOZdafeE68m%2F-L_FzF4n9qtyOkLqg77R%2Fimage.png?alt=media\&token=59bb72b2-54ad-40a5-bbcc-3efb8812ee3b)

解压后把pem和key文件改名为server.key和server.pem备用。

#### 2.运行Coolpy7核心服务&#x20;

通过ssh进入服务器i.coolpy.net，并确保你已经按照 <https://coolpy7.gitbook.io/coolpy7book/kai-shi-shi-yong/start> 配置服务器操作系统的网络优化配置。执行如下指令进行程序部署及运行

```
# 下载服务器端
git clone https://github.com/Coolpy7/Coolpy7.git && cd Coolpy7

# 解压文件
unzip go_build_Coolpy7_go_linux.zip

# 提权
chmod -R 777 go_build_Coolpy7_go_linux

# 启动Coolpy7 启动参数
# l 当前服务Host地址 (默认为:1883即本地1883端口,无需配置)
./go_build_Coolpy7_go_linux

# 启动成功后会打印如下信息，即说明服务端已正常启动，host于1883端口
2018/10/29 12:59:55 Coolpy7 tcp is listening on [::]:1883
```

{% hint style="info" %}
一般需为程序提权才可以运行Linux服务，指令：chmod -R 777 go\_build\_Coolpy7\_go\_linux
{% endhint %}

#### 运行Coolpy7 WS代理服务&#x20;

此功能即为Coolpy7核心服务提供WebSocket接入功能。执行如下指令进行程序部署及运行

```
# 解压文件
unzip go_build_Coolpy7_ws_go_linux.zip

# 提权
chmod -R 777 go_build_Coolpy7_ws_go_linux

# 启动Coolpy7 WS Poxy
# l启动参数 当前服务Host地址 (默认为:8083即本地8083端口,无需配置)
./go_build_Coolpy7_ws_go_linux

# 启动成功后会打印如下信息，即说明服务端已正常启动，host于8083端口
2018/10/29 12:59:55 upstream 192.168.200.201:1883 ok
2018/10/29 12:59:55 Coolpy7 ws is listening on [::]:8083
```

#### 运行Coolpy7 WS-TLS代理服务

此功能即为Coolpy7核心服务提供WebSocket接入功能提供TLS代理功能。执行如下指令进行程序部署及运行

```
# 下载CP7 WS TLS代理 服务器端
git clone https://github.com/Coolpy7/Coolpy7-WS-TLS-Poxy.git && cd Coolpy7-WS-TLS-Poxy/bin

# 提权
chmod -R 777 go_build_Coolpy7_ws_tls_go_linux_linux

# 启动Coolpy7 ws tls poxy
# r启动参数 CP7 WebSocket 代理服务器所在ip或域名 
# l启动参数 当前服务Host地址 (默认为:8084即本地8084端口,无需配置)
./go_build_Coolpy7_tls_go_linux_linux -r=192.168.200.203:8083

# 启动成功后会打印如下信息，即说明服务端已正常启动，host于8084端口
2018/10/29 12:59:55 upstream 192.168.200.203:8083 ok
2018/10/29 12:59:55 Coolpy7 TLS proxy is listening on [::]:8084
```

至此服务器端所有程序已就绪，以下部分开始回到本机进行开发测试工作。

### 微信小程序聊天室示例源码调试运行

1.下载聊天室源码

```
git clone https://github.com/Coolpy7/wxsmallapp.git && cd wxsmallapp
```

2.使用微信小程序开发工具导入项目选择git下载完毕源代码中的wxsmallapp，由入时会提示AppID相关登陆问题，请转换回阁下自己的微信公众平台中小程序开发的相关信息即可。

![](https://33059891-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LPz4APWKTuf0FRQG1lh%2F-L_FeD0zOOOZdafeE68m%2F-L_FrsQ5M9QPiGHIlHRi%2Fimage.png?alt=media\&token=0593b0f5-405e-49bc-9927-fdc6da9b12f5)

修改源代码pages/room/room.js文件第25行源代码，把127.0.0.1改为域名i.coolpy.net（本例域名）端口号改为Coolpy7\_ws\_tls代理服务端口号：把8083改为8084

![](https://33059891-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LPz4APWKTuf0FRQG1lh%2F-L_FeD0zOOOZdafeE68m%2F-L_G2PMxhMkouqvKWg_O%2Fimage.png?alt=media\&token=135761d8-ad7e-4a37-99e7-17d7232e89a3)

客户端修改完成，以下为测试应用相关效果。

![](https://33059891-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LPz4APWKTuf0FRQG1lh%2F-L_FeD0zOOOZdafeE68m%2F-L_G3v6GKkQxGY5SC9qU%2Fimage.png?alt=media\&token=54f72c9b-e55a-4754-8042-e5a7a57b6f94)

本示例所有应用均已经支持商业应用级别，安全及并发量都已达到商业应用标准，相关技术文档请参阅Coolpy7官方网站。以下是如关开源项目地址：

Coolpy7及Coolpy7\_ws开源地址：<https://github.com/Coolpy7/Coolpy7>

Coolpy7\_ws\_tls开源地址：<https://github.com/Coolpy7/Coolpy7-WS-TLS-Poxy>

微信小程序客户端开始地址：<https://github.com/Coolpy7/wxsmallapp>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET 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?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
