有你在真好 的个人博客
微信小程序 -- wafer全栈资源套件
阅读:2306 添加日期:2021/3/27 23:27:18 原文链接:https://www.toutiao.com/item/6368104276346012161/

一看到全栈资源套件几个字就感觉莫名的爽,这个配上小程序前端,总算是有个完整的demo了,而且这才能算上是官方提供的完整的demo。想起前一阵子听人提起全栈工程师,突然觉得微信小程序的开发和App相比,有很重要的一点就是,在开发量不是特别复杂的情况下,微信小程序是有可能由一名全栈工程师就能解决的,不像开发app需要配备ios,android,前端,后端,UI,文案,项目经理等等,在一定程度上可以缩短项目开发时间。

Wafer这个套件是腾讯云出品,近期刚“默默的”出现在了腾讯云自己的解决方案里(真的好低调),地址是
https://www.qcloud.com/solution/la,同时详细的代码可以从Github上拉取,

git clone https://github.com/tencentyun/wafer

结构上,Wafer 提供了两种服务器上适用于小程序的服务。一种是信道服务,另一种是会话服务。从简易结构图上看会更清楚些。

微信小程序 -- wafer全栈资源套件

1. 信道服务:

提供了 WebSocket 的通信能力,可以迅速拥有实时双工的 WebSocket 通信能力。其中信道服务共有信道服务涉及到三个模块参与协作进行通信:

  • 微信小程序客户端:需要 SDK 支持,详细可参见 Demo(
    https://github.com/tencentyun/wafer-client-demo)

  • 业务服务器:需使用服务端 SDK,目前的服务器腾讯云已经出了包括 Java、PHP、C#、Node 四种语言的版本。我们可以根据自己擅长的语言进行选择,这里真的满人性化。

  • 信道服务器:以 PaaS 服务的形式提供

有人问能不能不用这里的SDK。答:当然能,牛人自己写就成。

2. 会话服务:

我们可以很方便地在业务服务器中获取微信用户信息,然后在此基础上处理其他业务逻辑。

会话服务涉及四个模块协作处理通信过程:

  • 微信小程序客户端:需要 SDK 支持,可参考 Demo 实现

  • 业务服务器:需使用服务端 SDK,同样包括 Java、PHP、C#、Node 四个语言

  • 会话管理服务器:使用 PHP 实现,源码(
    https://github.com/tencentyun/wafer-session-server)

  • 微信服务器

Wafer套件所提供的两种服务,不仅在扩展性和安全性上能满足企业级的要求,同时预留了一键配置服务器的功能,对于我们来说具备较低的开发门槛,相当于服务器端也搭好了demo,我们可以迅速上手。否则光是后台建立,那么多服务器之间建立关系,域名证书部署来部署去,就能让人分分钟go to hell。

关于Wafer 的部署方式有 3 种,分别是

  • 自行部署:自行搭建所有的服务器、数据库以及所依赖的运行环境,要求开发者有丰富的运维经验(牛人首选,我不选)

  • 镜像部署:购买或使用现有的云服务器,用腾讯云提供的镜像安装系统,里面已包含 Wafer 运行所需要的环境及代码。适合希望在自己动手的过程中加深对 Wafer 整体架构理解的开发者(具体可以看这里,
    https://github.com/tencentyun/wafer/wiki/%E9%95%9C%E5%83%8F%E9%83%A8%E7%BD%B2)。

  • 一站式部署:由腾讯云提供的一站式解决方案,自动购买所需要云资源并完成自动部署,部署完成后可以直接运行小程序的 Demo。(
    https://github.com/tencentyun/wafer/wiki/一站式部署)

这次的一站式部署确实做得很不错,把非常复杂的多个服务器配置都放在了后台自动完成,以下是我在部署时的过程。

微信小程序 -- wafer全栈资源套件

其实,后台帮我们做了这么多事儿,而这些都只是在短短几分钟内,这样给了我们充分的时间研究通信原理,尽快攻克项目本身。

微信小程序 -- wafer全栈资源套件

当以上服务端部署完成后,还剩下两步操作即可全部跑通。

第一步是去微信mp的后台添加刚刚部署完成的域名,如下图所示

微信小程序 -- wafer全栈资源套件

第二步则是修改小程序端demo根目录下的config.js 将其中的host定义更换为刚刚生成的二级域名

var host = '1862**12.qcloud.la'; 这里是刚云端部署生成的二级域名。如果是自己配的话那么这里就是自己的域名。

ok,到此为止,这个Wafer套件就能正常运作起来了,如果有Appid的话就可以在真机上调试了,话说真机的效果比模拟器上要好。

希望这个全栈资源套件能加深大家对服务端的理解。也希望腾讯云多出这样好的案子。

ICP备案号:苏ICP备14035786号-1 苏公网安备 32050502001014号