微信Mini计划是一个高质量的营销平台,门槛低,交通巨大和公平竞争。这些特征满足了商人对产品营销的基本愿望。随着迷你计划使用者的逐步积累和降水,已经开放了微信迷你计划的利润趋势,并且在2018年,它也将迎来其最佳股息时期。因此,对于开发人员而言,如何开发流行的迷你计划敏捷和低成本?
3月31日, 和 共同组织了一家 +社区技术沙龙,该沙龙邀请了来自 和 的五位技术专家,分析了来自不同维度的Mini程序的敏捷开发的最佳实践,例如用于Mini程序,前端音频和视频功能的云解决方案。本文汇编了令人兴奋的内容。有兴趣的读者可以单击以读取原始文本以下载完整版本的PDF。
1云: 微信迷你程序解决方案
自微信小计划发布以来,许多惊人的迷你程序和迷你游戏都出现在微信平台上。在这些受欢迎的迷你游戏之后,微信迷你程序的云解决方案与诸如“跳跃”之类的迷你游戏的云部署,网络架构和安全系统密不可分。
来自 的微信Mini计划解决方案负责人 详细解释了Mini计划的开发过程中的常见问题,以及Mini计划的核心架构,开发人员工具解决方案和 Mini Mini计划云实践和其他开发者,为一些敏捷的开发提供了一些敏捷的开发和方法,从Mini计划的核心架构,开发人员工具解决方案和 Mini计划云实践和其他开发者提供了一些敏捷的方法和方法。
迷你计划的核心架构分析
小程序的实施原则
迷你计划是一种新的开放能力,开发人员可以快速开发一个迷你程序。可以轻松地在微信中获得和传播迷你程序,并具有出色的用户体验。那么,小程序如何实施呢?
首先,让我们看一下Mini程序的核心实现体系结构,如下图所示。第一层是Mini程序的渲染层,也就是说,它主要是负责任的。第二层是逻辑层,它主要通过业务逻辑实现登录功能和付款功能;第三层可以理解为微信的天然能力。微信为开发人员提供许多富裕的本地客户和网络,存储,登录,组件和硬件功能,包括文件的读取和写作,音频和视频的读写等。组件是用于开发的组件,包括录制音频和视频,摄像机,照相机,拍摄照片,扫描代码等,等等。
这些本机功能以及渲染层和逻辑层传递并传递消息,并通过事件并返回数据。当用户在接口上操作时,将触发相关事件,传递给本机,然后转移到业务逻辑层。微信小程序事件处理零件包括四个部分:
:将数据发送到视图(创建内部用途):收听视图事件(单击事件等):并在:查看触发层(调用wx.api)上:并查看订阅层事件(请收听系统事件)
开发人员工具计划简介
在配置迷你程序环境的过程中,开发人员需要准备自己的服务器,因此他们需要花费大量精力来进行服务器操作,维护和部署周围环境,并且不能专注于Mini计划的业务开发。为了使开发人员摆脱繁琐的配置, 发布了 Mini-解决方案,以帮助开发人员更方便地部署和调试服务器。
由于企业级和个体开发人员的迷你计划的需求是不同的,为了满足多方的需求,腾讯云具有基于企业级的功能以及快速,方便和低位的个人开发人员的定制解决方案。
它提供业务服务器和会话服务器。业务服务器部署和处理与业务相关的逻辑,而会话服务器用于独立处理与用户会话相关的逻辑(登录注册等)。业务和会议的分离有助于用户将来扩展Mini程序背景,从而解决了服务器部署问题。使用,用户需要独立地使用FTP和其他传输工具将代码传输到服务器,并通过SSH命令行部署代码。这要求用户了解操作和维护知识,并且阈值相对较高。在内部分析了此问题之后,团队放弃了将服务器所有权移交给用户的原始方法,并通过 部署和托管了服务器,封装了基于服务器(当前支持Node.js和PHP)的多种语言的操作环境(当前支持Node.js和PHP),并将操作环境的用途移交给用户。通过微信开发人员工具,可以单击一键将后端代码上传并部署到环境中。 Node.js版本还可以远程调试代码,从而大大提高用户开发效率并降低开发和使用的阈值。
请更多地注意为个人开发人员提供快速,方便和低阈值解决方案。 合并了原始业务服务器和会话服务器,以提供开发环境和生产环境。开发环境与生产环境配置相同,用于快速开发和测试。生产环境用于部署提供在线服务的代码。此外, 还与微信Mini计划团队合作,将其集成到微信开发人员工具中。
迷你计划云实践
除了IAAS功能解决方案外, 还提供了各种功能,例如快速通信界面,登录,语音识别等,以满足Mini计划开发过程中用户的各种功能需求。在这些基本功能之上,腾讯云开发了两个主要解决方案:聊天室和图像识别。
聊天室主要结合了腾讯的云服务,并使用频道通信技术来实现迷你程序和服务器之间的信息交互和传输。如果Mini程序在登录时将从服务器获取地址,则 Paas级通道通信技术可以使当前用户当时直接连接到服务器,而无需连接到服务服务器。
这样做的优点是,开发人员可以避免在开发过程中更多地关注实施并避免绩效消耗。
同时, 提供了基于 技术的图像识别的API,该技术可用于ID卡识别和实时验证等字段。由于空间有限,本文将不会在此处详细描述。对此感兴趣的学生可以访问 的官方网站以了解更多信息。
2前端:如何在迷你程序中添加音频和视频功能
音频和视频功能一直是迷你节目中的缺点。在2017年第四季度,腾讯视频云终端团队和微信团队共同努力,以微信版的SDK形式实施腾讯视频云的技术积累,从而在Mini程序中添加了实时和实时音频和视频功能。腾讯视频云终端技术负责人 Qing详细解释了如何从原理分析,技术演变和快速启动的角度将音频和视频功能添加到迷你程序中。
原理分析
以下是微信迷你程序中嵌入的音频和视频组件。上层是Mini程序代码层,中间是Mini程序的基本库,最低层是音频和视频组件。其中,这里的SDK由两个部分组成:一个是音频和视频上游,音频和视频下游。
上行链路解决方案主要解决音频和视频采集,处理,编码和网络的问题。实现过程是首先收集本地图片和声音,然后预先处理它们,例如图片的美,音频的降噪等,然后对其进行编码。该部分主要试图压缩数据,并最终通过网络模块上传到云。
下行链路对应于上行链路,即,最初在云中的音频和视频数据是通过网络传输,解码和其他操作播放的。在音频和视频下行链路上,视频或声音播放的速度直接取决于网络的速度。为了确保播放效果,需要在解码之前对数据进行缓冲。这样,即使网络环境很差,也可以在一定程度上确保平稳的播放。
技术演变
当微信Mini节目首次开始嵌入音频和视频时,无法实现许多技术要点。腾讯视频云团队和微信团队通过抛光和更新和迭代持续半年,在迷你节目中逐渐添加了一系列在线音频和视频功能。
在线实时广播:对于在线实时广播,最核心的关键点是解决高并发问题的问题。 首先上传数据,然后数字地处理信号,清洁和集成声音,并最终逐步通过放大器放大信号,以便每个区域中的音频和视频接收器都可以在附近的计算机室中吸引高质量的音频和视频流,从而解决了听众和视频差异和视频差异和lag and lag and lag and lag and lag and lag and lag and lag and lag and lag and lag and lag and lag and vide。遥控器:以去年流行的在线爪机游戏为例。由于爪游戏对延迟有非常严格的要求,因此在解决方案方面,有必要构建和实施超低潜伏期的实时音频和视频链接。此链接允许操作员在很短的时间内查看远程设备的视频图像,以确保爪机的可操作性。双向呼叫:在Mini程序上实现了超低潜伏期链接后, 团队已将一系列高阈值的声学技术(例如回声抑制,噪声消除,自动增益,数据包丢失恢复以及其他高位阈值声学技术)集成到Mini 和视频解决方案中。这使双向音频和视频通话在技术上不仅对开发人员透明,而且还与现实生活中的各种应用程序匹配效果(例如远程损失确定,远程客户服务,远程客户服务,远程物理治疗,远程帐户开放等)。其中最核心的部分是腾讯音频和视频实验室的“天莱”声引擎的技术支持。多人呼叫:当两个人的呼叫是单一对单一的传输时,但是当多人通话是多对多传输的传输时,信息是多对多的传输。目前,需要一个通用控制系统来协调不同目的的状态并协调各端的输出,包括谁在什么时间说话,谁无法说话。腾讯视频云团队根据微型程序的定制组件的设计标准,实施了一组称为状态同步和视频室统一管理的解决方案。
从简单的实时广播到DNS再到双向通话再到多人通信,整个技术演变路线已经进行,基本上可以涵盖基于迷你程序的音频和视频场景。
快速开始
在该区域提供了完整的云解决方案。用户可以根据其需求登录到 后端,并且可以直接下载和部署空的 。整个操作步骤如下:
:被授权登录到腾讯云;:打开表格之前使用权限;:激活腾讯云服务;:安装开发工具;:下载和部署演示;
3底层:微信迷你游戏架构设计
自迷你游戏发布以来,许多惊人的游戏都出现在微信平台上,包括“跳跃”和“捍卫胡萝卜”。通常,人们会将迷你游戏分类为迷你节目的子类。但是,就技术实施而言,微信迷你游戏和迷你程序的基本体系结构和实施原则大不相同,这源于该游戏所需的多个用户的深入参与。因此,迷你游戏的最大特征是分散分销和朋友关系链的传播。
微信迷你游戏的这两个主要特征也提出了建筑设计的特殊要求:首先,对整个地区和所有服务器的需求。为了充分利用微信的社交网络,通常要求游戏在整个地区和所有服务器(独立游戏除外);其次,对在线扩展和扩展的需求,因为任何游戏都可能成为热门产品,并且可能会在微信上有几何增长,并且无法预测访问的变化,因此在线扩展,扩展和扩展已成为小型游戏体系结构的必要性。
开发商的迷你游戏推出后,在短时间内,在线用户的数量从数以万计增加到了大约200万。由于设计系统体系结构时有性能瓶颈(缓存使用一个实例,数据库也是一个库),因此在扩展容量时,我们遇到了一个相对较大的问题。通过重构程序并使用群集数据库,该问题最终解决了。但是,由于大量时间的延迟,损失造成了,在线用户的数量大幅下降。因此,我希望迷你游戏的架构是轻巧的,“小”,但是在建筑设计之前仍需要考虑关键问题。
计算层架构设计
无状态分层体系结构
让我们首先看一下下图(左)的无状态层次结构。架构图如下图所示。简而言之,这是根据服务通话关系层的节点。这些层通过LB(负载平衡)连接。 LB下的节点可以灵活地扩展。该体系结构实际上是一种常用的网络架构,足以容纳一般休闲游戏。
右图是腾讯云上无状态分层体系结构的最佳实践。客户使用CLB扩展名并平衡对后端服务的访问,并使用BGP高防御来保护游戏。当发生攻击流量时,高防御服务可以清洁流量,然后将其返回到系统。 使用不同的弹性缩放组来携带不同的服务,并且服务之间的呼叫通过负载平衡连接以促进动态缩放。这使用了一些腾腾云服务:
第一个是高性能负载平衡CLB:一个群集提供的最大数量超过1.2亿个连接,以应对数十亿次访问;一个群集可以处理40GB/s的峰值流量,每秒数据包的处理量(PPS)可以达到600万;严格隔离每个租户的流量以提供主动DDOS保护功能。遇到DDOS攻击时,腾讯云负载平衡可以为2〜10 GB DDOS攻击的高峰流量提供免费的防御能力。第二个是 的弹性缩放服务。弹性缩放服务可以在不同时间缩放群集中的节点数量。支持的策略包括定时缩放和缩放策略,基于监视和警报的策略,手动缩放和缩放策略等。就容量膨胀速度而言,在 上创建1,000个云主机的平均时间为63秒。借助弹性缩放服务和 的基本功能,很容易快速,动态扩展和扩展服务。第三是BGP高防御服务。当前的安全状况并不乐观,攻击流量触手可及。必要时可以通过BGP高防御服务来保护迷你游戏。其特征是该平台具有T级保护带宽,提供基于AI的准确识别算法以及行业最全面的BGP网络,可以在提供保护的同时最大程度地提高网络覆盖质量。
无状态层次结构的优点是高可靠性,单节点故障不会影响整体可用性,并且可以灵活地扩展和收缩。但是,对于游戏,有两个问题:1)节点对处理每个请求的无状态要求必须在存储层中读取和写入,这将导致存储层的高压,高硬件成本,并且不适合具有高实时需求的方案; 2)该请求不能直接在同一级别的节点之间发送,并且下层节点无法向上发送请求。对于某些游戏方案,需要通过共享数据和投票来解决它。对于开发人员而言,这并不方便,并且会有实时问题和绩效损失。
星建筑
为了解决上述问题,迷你游戏团队采用了星际体系结构,如下所示:
不同节点之间的通信是一台服务器,可以实现节点之间的消息转发。例如,如果节点A中的对象想要将团队邀请发送到节点B中的对象,则可以将消息发送给并转发给b处理,然后发送到的b。在这种结构中,所有节点都是对等关系,任何两个节点都可以实现消息互操作性。但是这个数字有一个明显的问题:这是一个点,具有容错和可伸缩性问题。对于容错,可以通过引入主支持机制来解决。借助主支持主支持的自动切换,当主节点不可用时,它可以自动切换到备份节点。
另外,可以通过将多个星形结构连接在一起来解决可伸缩性问题,如下图所示:
在集合第2的节点B上的节点A上,当1发送团队邀请到2时,可以将消息转发到2,最后到达节点B,并在节点B中执行必要的判断过程,并最终通知客户端,这需要保存所有对象的路由数据,类似于下表:类似于下表:相似:
在这里,以下事情已经完成:
首先,收敛连接,简化内部通信的管理;其次,已经建立了一种通用的对象路由机制,从而简化了游戏的开发。游戏开发人员不需要关心服务和流程,而只需要关心对象。第三,可以执行负载平衡和广播。
它是通用的,可以用作常见的游戏中间件。
基于此架构,系统扩展可以在两个级别进行。一个是集合中的扩展名。当大厅或战斗节点不足时,可以动态添加。新节点将注册并将其加入系统。当集合的承载能力达到上限时,它可以通过复制集合来继续扩展。假设已经有set0和set1,当它需要添加set2时,将首先部署整个系统。当它上升时,总和将发现并建立与之的连接。建立连接后,将获得或获得整个对象路由信息,并且在上面初始化后生成的对象路由信息将发送到总和。
在这一点上,已经建立了整个系统的通信拓扑。 SET2可以向公众开放。登录到SET2的大厅节点后,它将发送其自己的对象路由信息并将此信息同步到总和。简而言之,它是通过复制节点和复制集扩展,反之亦然。
下图是在腾讯云上扩展恒星结构的练习。对于具有高实时要求的游戏,例如坦克战争,您可以部署多个点以允许玩家访问附近。中国南部的参与者在广州访问VPC,中国东部的球员访问上海的VPC和SET1和SET2分别部署在两个VPC中,并且可以通过跨域对等连接进行连接,以便可以建立连接以实现整个区域和整个服务器。
存储层设计
微型程序设计的目的是建立一个大存储层,以解决全区域,全方位服务和动态扩展的问题。最重要的问题是数据库水平扩展的问题。有三种方法可以自己做:基于增量间隔的第一种类型的碎片。它的优势是它可以实现动态的在线容量扩展,但是有性能热点,因为新碎片始终是访问次数最多的碎片,而旧碎片会随着玩家的损失而经历闲置的性能。第二种方法是根据ID的哈希值均匀地将数据分散到不同的碎片上,并且没有性能热点问题,但是在扩展系统时,通常有必要重新安置数据,这很难实现快速自动容量的扩展;第三种方法是将两者结合起来,这可以同时解决两个问题,但是需要添加中间数据路由层,其中具有研发负担和绩效损失。
为了简化存储层的设计, 的分布式数据库产品DCDB现在已被广泛使用。它的原理是通过添加一个中间代理层将逻辑表映射到多个物理表,并将碎片的复杂性完全封装在代理层中。它几乎可以与业务层透明。
DCDB支持新的碎片扩展和现有的碎片扩展。在容量扩展期间,系统将自动重新安置数据并切换相应的流量,以便在线业务不了解它。开发人员只需要在控制台上执行简单操作即可实现自动缩放。
可以简化存储层设计的另一种产品是,这是开发的分布式数据库,专门为游戏设计。它的主要特征是:
首先,它支持接口访问,这很友好并且非常适合游戏开发;其次,将其与硬盘结合使用,而热和冷数据将自动替换为热和冷数据,因此开发人员不必同时面对缓存的数据库和持久数据库;第三,存储空间是无限的,每个表支持最多50tb,并支持连续的服务器扩展,这可以很好地支持整个地区和所有服务器。
目前,它已在腾讯中广泛使用,包括数百种游戏,例如国王,火影忍者,CF和的手机游戏,所有这些游戏都被用作主要数据库。
4个工具:一键发动机发行微信游戏
该引擎是推出的开源引擎,它不仅支持三种语言的游戏开发:AS3,TS和JS,而且还可以作为App 和 Mini 以及发行。开发人员可以在工具中直接开发和提交产品。合作伙伴李明(Li Ming)详细分享了如何使用引擎和工具一点击发布微信迷你游戏。
制作迷你游戏之前的准备工作
在发布微信迷你游戏之前,您需要进行一些准备工作,包括环境配置,工具下载,帐户创建等。
第一:环境配置,即下载和安装引擎的开发环境。在这种环境中,发动机开发工具和迷你游戏发行的功能适应性均已实现;第三:创建一个小程序的企业开发人员帐户并获取开发人员ID()。在这里,值得注意的是,个人开发人员不需要版本号,但不能支付应用内购买;对于公司开发人员,如果版本号未完成,他们还可以提供版本号码应用程序收据。
使用H5引擎开发微信迷你游戏的过程
H5 由H5发动机开发的微微迷你游戏主要包括创建,开发,释放,真实机器调试和在线发布等步骤。首先,您需要在IDE中创建一个小型游戏示例项目,然后使用小型游戏来开发它。开发完成后,小型游戏项目可以直接在IDE中发布。在发布迷你游戏项目之后,还必须在微信的开发人员工具中导入IDE发布的迷你游戏项目,然后通过在微信开发人员工具中的预览和上传功能进行实时调试和在线发布。
在IDE中创建一个迷你游戏项目。这相对简单。打开新的项目按钮,您可以看到创建接口。应该注意的是,您必须在创建时选择微信迷你游戏2D示例或微信Mini Game 3D示例,否则将不会创建微信开发人员工具的项目文件,并且不会导入游戏适配器库。在IDE内进行了迷你游戏开发。迷你游戏的开发过程(即4M本地包装)有一个非常重要的重点。该本地软件包主要用于存储JS文件和最基本的预加载资源(整个项目的JS必须放置在本地软件包中)。在本地软件包超过4M之后,可以远程加载资源。通过发动机适配器库的本地包装白色函数,它可以方便地管理本地资源和远程资源的加载。此外,在迷你游戏的缓存管理中,引擎适配器库提供自动缓存管理和手动缓存管理。建议将自动缓存管理用于具有小于50m的公共资源的小型游戏。如果常用资源大于50m,则需要手动缓存管理。迷你游戏项目在IDE内发布。项目开发完成后,您可以单击“发行”按钮将H5项目直接发布到一个小点击中,因为微信迷你游戏和QQ迷你游戏都提供标准的渲染接口。该引擎建立了一个适应库,将不同平台的接口与引擎API连接起来,从而确保开发人员可以在一个开发中同时发布多个平台。导入微信发展工具中的项目。打开微信开发人员工具并创建一个迷你游戏项目。创建时的目录直接指向已发布的迷你游戏项目。调试微信迷你游戏。微信迷你游戏的调试包括两个部分:常规开发调试和真实机器调试。常规开发调试仅需要在IDE进行调试或开发过程中下降(Mini Game工具也是基于)。真实的机器调试要求本地软件包必须小于4m。微信的真实机器调试环境相对简单,调试主要依赖于日志输出。该游戏在线发布。在调试微信迷你游戏之后,如果您打算在线上网,请单击“微信开发人员工具”中的上传,以将迷你游戏版本提交给微信开发人员平台,然后在平台上提交相关信息。批准审核后,它可以在线。
以上是使用引擎一键释放迷你游戏的完整过程。据报道,它还将与腾讯云一起使用,以优化迷你游戏的发行和开发过程。将来,它将将微信迷你游戏的动态加载软件包集成到腾讯云中,以避免繁琐的过程,例如手动拆分目录和打开服务器传输工具。同时,用户还可以将其帐户与 相关联,并通过IDE快速购买 的服务器。
5实践:如何使用迷你程序技术解决公司销售问题
在迷你计划时代,您不仅需要了解发展,而且还需要擅长运营。具有多功能和高性能的迷你计划需要与完整的操作手段合作,以最大化其价值。 的联合创始人Liu Yi分析了对典型公司营销场景的痛苦点的分析,以及如何将小计划结合起来解决公司销售问题。
公司营销痛点的分析
在解释公司营销的痛苦点之前,Liu Yi分析了公司营销的三个关键需求,即收入,销售和销售管理。其中,最后两个点直接影响了公司的收入。那么,公司如何进行销售和销售管理?下图是中国8000万推销员的痛点的摘要。大多数公司可能会面临以下四类疼痛点:
of all, it is to and the cost of is very high. For , we real . We may make 300 day. Each call is to be only 30 , and 150 are . , the of is very low. In , the rate is very low: that a out 500 at a , of 480 may be , and it is to , so the rate is low; is high: in all , is the top , and once the , many in the will be away, loss; rate is low: it is , on-site or card , the rate of is very low. It may only 1 in 2,000 , and only 1 in 10 will .
Add
it is a , a -mall, an or a mini , the rate is not high in the of the push and ; even if the are and , can only and one-on-one, and in a , and work is low.
So, is a and tool that can open up such as , , mini , etc., and , , and into an loop? on this idea, we have the mini to from SaaS mini and the 's . AI , AI and , we can and 1 of mini .
AI card: mini card. only need to scan the mini code to add card. who have can view at any time, , , , etc., and the can be set to ; AI : to the mini , AI in real time " " and , real and , and up in time. At the same time, can be by , and , and ; BOSS : BOSS and to the BOSS , . At the same time, data is in the . Even if you , all data can be the .
In , up , up data , in real time and user , and then mini- , a of , uses AI core to user data, in , book, and into the or . The BOSS can data in real time and of .