热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

10通信端口感叹号_开源企业级微信小程序实时通信聊天室技术架构演练

本应用示例使用Coolpy7作为Mqtt服务器并启用Websocket代理完美支持高并发大流量即时通过能力,本示以微信小程序即时通信聊天为例。并以阿里云ECS为服务器

b9f1d1be21e87a770a6f336ca092a9b7.png

本应用示例使用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工具。并配置好域名指向,本例中使用的是http://i.coolpy.net域名。需要确认系统防火墙放行该端口

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

a923114a0ef3462b5cb6980a3333d8e4.png

进入SSL证书功能

02fb8eee39ec01a1f3bca24fff87143a.png

选择免费证书并购买

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

f706d2ed894f9dd0346be7cc3d8270ad.png

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

2.运行Coolpy7核心服务

通过ssh进入服务器http://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相关登陆问题,请转换回阁下自己的微信公众平台中小程序开发的相关信息即可。

e697040e30db88ac4a143564e1fad63a.png

修改源代码pages/room/room.js文件第25行源代码,把127.0.0.1改为域名http://i.coolpy.net(本例域名)端口号改为Coolpy7_ws_tls代理服务端口号:把8083改为8084

e57b9a1a3cdd10b5b2c7056132886acd.png

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

311ffd8a8a2f2e5aef8a45824d9589c8.png

本示例所有应用均已经支持商业应用级别,安全及并发量都已达到商业应用标准,相关技术文档或性能测试报告请参阅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



推荐阅读
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • Sleuth+zipkin链路追踪SpringCloud微服务的解决方案
    在庞大的微服务群中,随着业务扩展,微服务个数增多,系统调用链路复杂化。Sleuth+zipkin是解决SpringCloud微服务定位和追踪的方案。通过TraceId将不同服务调用的日志串联起来,实现请求链路跟踪。通过Feign调用和Request传递TraceId,将整个调用链路的服务日志归组合并,提供定位和追踪的功能。 ... [详细]
  • 14亿人的大项目,腾讯云数据库拿下!
    全国人 ... [详细]
  • 玩转直播系列之消息模块演进(3)
    一、背景即时消息(IM)系统是直播系统重要的组成部分,一个稳定的,有容错的,灵活的,支持高并发的消息模块是影响直播系统用户体验的重要因素。IM长连接服务在直播系统有发挥着举足轻重的 ... [详细]
  • DockerDataCenter系列(四)-离线安装UCP和DTR,Go语言社区,Golang程序员人脉社 ... [详细]
  • MACElasticsearch安装步骤及验证方法
    本文介绍了MACElasticsearch的安装步骤,包括下载ZIP文件、解压到安装目录、启动服务,并提供了验证启动是否成功的方法。同时,还介绍了安装elasticsearch-head插件的方法,以便于进行查询操作。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 单点登录原理及实现方案详解
    本文详细介绍了单点登录的原理及实现方案,其中包括共享Session的方式,以及基于Redis的Session共享方案。同时,还分享了作者在应用环境中所遇到的问题和经验,希望对读者有所帮助。 ... [详细]
  • 深度学习中的Vision Transformer (ViT)详解
    本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ... [详细]
  • node.jsurlsearchparamsAPI哎哎哎 ... [详细]
  • 本文介绍了在Linux系统下进行文件压缩与解压的常用命令,包括tar命令的基本使用和参数,以及gzip、bz2、compress、rar和zip等不同格式的压缩与解压方法。同时还提供了常见的压缩文件后缀名及对应的解压命令,方便用户进行文件的压缩和解压操作。 ... [详细]
  • 该ROM为红米3S3X手机提供了最强大的自定义功能,包括美观流畅的界面、全新的起航动画、魔幻的动画效果以及冰箱冻结功能。同时,还提供了高级设置,包括悬浮窗口显示自定义、WIFI密码查看器、S8炫酷跑马灯显示自定义等多项实用功能。此外,该ROM还优化了手机的待机时间、wifi连接速度,并支持状态栏实时网速显示和电池电量百分比显示。 ... [详细]
  • 本文分享了一位Android开发者多年来对于Android开发所需掌握的技能的笔记,包括架构师基础、高级UI开源框架、Android Framework开发、性能优化、音视频精编源码解析、Flutter学习进阶、微信小程序开发以及百大框架源码解读等方面的知识。文章强调了技术栈和布局的重要性,鼓励开发者做好学习规划和技术布局,以提升自己的竞争力和市场价值。 ... [详细]
  • Hello.js 是一个用于连接OAuth2服务的JavascriptRESTFULAPI库,如Go ... [详细]
author-avatar
紫色冰姬YOU
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有