小程序的系统及实现机制,通信服务及会话管理

来源:未知 浏览 171次 时间 2021-06-17 12:29

 

小程序的架构及实现机制,信道服务及会话管理

框架基本都是建立在window、document对象上但小程序是没有window、document或者说没有浏览器BOM这个宿主环境。你可以理解为小程序的宿主环境是类似node的宿主环境而不是浏览器客户端。所以决定了无法使用Dom库如JQuery。

小程序的架构及实现机制,信道服务及会话管理

而又并非使用URL访问而是通过信道服务进行通讯和会话管理所以它不支持Cookie存储同时访问不存在跨域问题。

不兼容Html标记,而遵循XML语法而提供自身封装类似的组件与API来实现页面展现。

模块化形式上支持CommonJs加载引用更像ES6。小程序形式支持CommonJS通过require加载跟node、seajs类似。但是通过require加载的是引用的赋值而不是CommonJS中的值的缓存。

从框架组件设计来看框架本身采用面向状态的编程方式组件部分类似redux的设计(实际不是redux实现的)。组件的View在action操作后只能通过action的业务处理进行更新View。而框架是单向数据绑定无法自动更新。对于这一类View组件自带action的建议进行必要再封装。封装可以考虑aop的方式动态的注册&卸载。

对于业务页面的开发可以将页面视为一个页面组件。在这个页面组件完成了以下工作:

负责初始化组件state(微信)

负责组合子view组件形成页面效果(开发者)

确定js 与view 匹配的数据(开发者)

负责注册业务逻辑对象提供的业务逻辑方法(开发者)

负责管理业务逻辑对象(开发者)

页面wxml与页面js的通信如下(简化了微信框架的工作)

官方开发文档:https://mp.weixin.qq.com/debug/wxadoc/dev/index.html?t=20161107

知识储备

基础:HTML+JS+CSS

进阶:React、Vue

语法:Mustache、XML

规范:CommonJS

微信小程序的架构

一个小程序页面包含4个文件:

1.WXML:页面结构  用于创建页面对象以及处理页面生命周期控制和数据处理

2.JS:页面逻辑  设置当前页面工作时的window的配置

3.WXSS:页面样式 用于定义页面中元素结构遵循XML语法seo怎么优化到首页遵循XML语法不是HTML语法增加了flex布局

4.JSON:页面配置 用于定义页面样式的语法遵循CSS语法扩展了CSS基本用法和长度单位

小程序的实现机制

小程序的开发是基于微信提供的一套应用框架进行开发的。微信通过封装微信客户端提供的文件系统、网络通信、任务管理、数据安全等基础功能对上层提供了一套完整的Javascript Api使得开发者能够非常方便的使用到微信客户端提供的各种基础功能快速构建一个应用。框架设计如下:

框架提供了自己的视图层描述语言 WXML 和 WXSS以及基于 JavaScript 的逻辑层框架并在视图层与逻辑层之间通过单向数据绑定进行数据传输使开发者更加聚焦于数据与逻辑上。

信道服务与会话管理的实现

信道服务是基于WebSocket完成的而会话管理需要完成微信要求的鉴权流程。微信的请求接口 wx.request 并不支持 cookie 传递seo怎么优化到首页而会话管理需要完成微信要求的鉴权流程。微信的请求接口 wx.request 并不支持 cookie 传递所以会话层不能使用传统的 Session 方式。

会话服务和信道服务与服务模块之间的关系

小程序与业务服务器之间通信

信道服务是基于WebSocket实现的具体流程如下:

小程序与业务服务器之间通信流程

建立 WebSocket 连接的过程

会话管理的实现流程与鉴权流程如下:

会话的建立流程

会话的验证流程

标签: 程序微信组件页面