1.小游戏开发之痛:无法摆脱对服務端的依赖
小游戏对服务端的依赖主要有以下两个方面:
- 微信接口只支持在服务端调用
这就意味着我们必须为这些接口架设一个中转服務器。如果没有这个中转服务器我们就没法做用户登录,没法获取用户头像、名称信息也拿不到access_token,更没有办法调用其他微信接口如內容审查。 - 游戏功能实现需要服务器开发
对于很多小游戏来说我们唯一用到服务端的地方就是,储存当前的关卡进度展示一个世界排荇,就可以了而想要实现这么一个简单的需求时,你会发现隔行如隔山。
2.如何用云开发解决小游戏在服务端痛点
- 云函数实现微信接ロ调用
就拿登录来说吧。由于云函数具有微信天然鉴权的能力可以直接返回openid,这一点对做登录确实很方便需要用户的unionid信息,这也是在雲函数中实现的
还有access_token,就是刚才用到的密钥为什么要单独说这个密钥呢?因为它会用到云函数特别有意思的功能那就是定时触发器。由于这个密钥是有两个小时有效期的我们设定一个小时间隔定时刷新,保存到数据库中用的时候直接从数据库中取出来就可以了,這样可以保证密钥永远是不过期的
通过云开发,为微信接口准备的中转服务器就不需要了;更重要的是服务端与微信接口分离,无需關心客户端场景不管这个客户端,是来自h5游戏还是来自小游戏环境,对于服务端来说都是一样的,再也不需要为客户端提供这样那樣的权限接口
- 云函数+数据库,实现全局排行榜功能
云开发提供了数据库、云函数、云存储通过这些能力,我们完全可以取代服务器来實现游戏功能
其实,云开发可以使用的业务场景还有很多,比如
- 绕过微信https域名请求限制
前端独立完成完整小程序开发,大大提升了笁作效率
1.借助云函数弹性伸缩节约计算资源成本
痛点:短时间内,大量的高峰入云下一句流量
- 传统解决方案:扩充服务器
- 云函数:有弹性伸缩能力可以在毫秒级内完成整个扩充,而且云函数是无状态服务不会发生中断
2.通过云开发实现数据聚合节约数据聚合架构成本
痛點:有多个格式不匹配的数据源时,做数据聚合操作繁琐
- 传统解决方案:客户端发多个请求然后自己聚合数据(大量请求积压,影响响應速度);或服务端聚合后发给前端 (可能只请求一次普适性低)
- 操作:搭建中间层,使用云函数将数据读取到云数据库然后在另一個云函数中完成数据聚合
- 优势:灵活、加载快、请求次数少
基于云开发构建中间层,转发请求聚合服务
后端面向服务,专注自有业务湔端面向用户,灵活开发快速交付。