開源企業級微信小程序實時通信聊天室技術架構演練

本應用示例使用Coolpy7作為Mqtt服務器並啟用Websocket代理完美支持高併發大流量即時通過能力,本示以微信小程序即時通信聊天為例。並以阿里雲ECS為服務器端縮主架構整套系統。並支持TLS連接通信加密,商業應用安全組別。

應用架構簡介

系統關係示意

微信小程序->域名轉向->(阿里雲[Coolpy7_ws_tls=>Coolpy7_ws代理服務=>Coolpy7核心服務端])由核心服務進行多個客戶端消息廣播。

系統程序架構

  1. MQTT服務端程序(Coolpy7)
  2. WebSocket代理服務端 (Coolpy7_ws)
  3. WebSocket TLS代理服務端(Coolpy7_ws_tls)
  4. 微信小程序聊天室前端 開源地址:https://github.com/Coolpy7/wxsmallapp

安裝與部署

1.阿里雲ECS相關配置

本文以ubuntu 16.04為例,並安裝好git工具。並配置好域名指向,本例中使用的是i.coolpy.net域名。需要確認系統防火牆放行該端口

由於TLS加密通信代理服務端需要用到域名的證書才可正常通過微信小程序的域名驗證,微信小程序在正式發佈要要求必需是TLS加密通信通道才可以上線發佈。所以先到阿里雲下載自己的域名證書。登陸阿里雲控制檯進入SSL證書功能頁->證書購買頁

開源企業級微信小程序實時通信聊天室技術架構演練

進入SSL證書功能

開源企業級微信小程序實時通信聊天室技術架構演練

選擇免費證書併購買

購買完成後在已簽發功能可以下載相應的證書

開源企業級微信小程序實時通信聊天室技術架構演練

解壓後把pem和key文件改名為server.key和server.pem備用

2.運行Coolpy7核心服務

通過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

一般需為程序提權才可以運行Linux服務,指令:chmod -R 777 go_build_Coolpy7_go_linux

運行Coolpy7 WS代理服務

此功能即為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相關登陸問題,請轉換回閣下自己的微信公眾平臺中小程序開發的相關信息即可。

開源企業級微信小程序實時通信聊天室技術架構演練

修改源代碼pages/room/room.js文件第25行源代碼,把127.0.0.1改為域名i.coolpy.net(本例域名)端口號改為Coolpy7_ws_tls代理服務端口號:把8083改為8084

開源企業級微信小程序實時通信聊天室技術架構演練

客戶端修改完成,以下為測試應用相關效果。

開源企業級微信小程序實時通信聊天室技術架構演練

本示例所有應用均已經支持商業應用級別,安全及併發量都已達到商業應用標準,相關技術文檔或性能測試報告請參閱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


分享到:


相關文章: