一看到全栈资源套件几个字就感觉莫名的爽,这个配上小程序前端,总算是有个完整的demo了,而且这才能算上是官方提供的完整的demo。想起前一阵子听人提起全栈工程师,突然觉得微信小程序的开发和App相比,有很重要的一点就是,在开发量不是特别复杂的情况下,微信小程序是有可能由一名全栈工程师就能解决的,不像开发app需要配备ios,android,前端,后端,UI,文案,项目经理等等,在一定程度上可以缩短项目开发时间。
Wafer这个套件是腾讯云出品,近期刚“默默的”出现在了腾讯云自己的解决方案里(真的好低调),地址是
https://www.qcloud.com/solution/la,同时详细的代码可以从Github上拉取,
git clone https://github.com/tencentyun/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/一站式部署)
这次的一站式部署确实做得很不错,把非常复杂的多个服务器配置都放在了后台自动完成,以下是我在部署时的过程。
其实,后台帮我们做了这么多事儿,而这些都只是在短短几分钟内,这样给了我们充分的时间研究通信原理,尽快攻克项目本身。
当以上服务端部署完成后,还剩下两步操作即可全部跑通。
第一步是去微信mp的后台添加刚刚部署完成的域名,如下图所示
第二步则是修改小程序端demo根目录下的config.js 将其中的host定义更换为刚刚生成的二级域名
var host = '1862**12.qcloud.la'; 这里是刚云端部署生成的二级域名。如果是自己配的话那么这里就是自己的域名。
ok,到此为止,这个Wafer套件就能正常运作起来了,如果有Appid的话就可以在真机上调试了,话说真机的效果比模拟器上要好。
希望这个全栈资源套件能加深大家对服务端的理解。也希望腾讯云多出这样好的案子。
