架构设计思路

1、针对请求获取url
判断数据请求方式,如果为Ajax请求则通过ajax返回json数据,否则显示html页面
2、根据url判断模块、模型、控制器、方法以及关键key等

3、数据包data包括data_list/data_info/data_tree/data_custom、field_defined[field_defined=1]、page_info[page_info=1]、search_defined[search_defined=1]、sort_defined[sort_defined=1]
data数据包中定义如下:
(1) data中必包含data_list列表数据、data_info数组数据、data_tree树形数据、data_status状态数据、data_custom自定义数据其中之一
(2) field_defined表示数据展示的表单定义,当请求参数中包括field_defined=1时返回;
(3) page_info表示数据展示的表单定义,当请求参数中包括page_info=1时返回;
(4) search_defined表示数据展示的表单定义,当请求参数中包括search_defined=1时返回;
(5) sort_defined表示数据展示的表单定义,当请求参数中包括sort_defined=1时返回;
(6) data中都默认包含返回状态errcode=0,当errcode的值不为0时,额外增加errmsg内容。
4、公共方法
参考《常用公共方法定义》一文。
5、通用方法
在前置base控制器中编写get_list、add、edit、delete四个方法的常规操作。所有访问优先使用公共方法定义中的方法进行响应,特殊方法自行编写代码实现。
6、访问流程
前置判断url所属功能id[功能验证],查询不到则返回异常[Ajax通过json返回,非Ajax通过页面返回];查询到以后设置全局变量,根据功能id判断权限验证要求,不需要的直接进行业务操作,需要的开始判断用户/管理员登录状态[登录验证],成功登录的进行角色判断[角色验证],根据所属角色检索是否拥有该功能的访问权限[权限验证],拥有则进入业务操作;
(1) 功能验证
(2) 登录验证
(3) 角色验证
(4) 权限验证
以下为业务操作
1)全局信息定义
AccessInfo[必须]、LoginInfo{AdminInfo、RoleInfo、AccessList}[登录完成]、AccessParamList[当方法名为get_list、add、edit]
2)调试操作
(1)文件智能生成,根据请求模型判断模型是否存在,不存在时自动创建到common模块(若功能信息中不包含model_id或者model_name则不需要创建模型)
(2)功能参数自动生成,当访问的功能含有数据模型,但是没有参数定义[access_param]则自动跳转到自动生成功能界面,该界面包含自动生成和返回按钮,自动生成完成以后同样返回至原访问路径。
业务操作方法先判断是否为空操作
(1) 为空操作,判断是否为Ajax,如果不是直接返回页面[默认或指定模块库/default/方法名],如果是则根据方法名获取数据,根据可选定义[field_defined、page_info、search_defined、sort_defined]获取数据,完成后打包至公共方法[srt/ert]返回json。
(2) 非空操作,判断是否为Ajax,如果不是直接返回页面[默认或指定模块库/控制器名/方法名],如果是则根据方法名获取数据,根据可选定义[field_defined、page_info、search_defined、sort_defined]获取数据,完成后打包至公共方法[srt/ert]返回json。

备注:
1、新增data_model表、定义model_id,access表中新增model_id字段,access_param表中新增access_id、model_id字段

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WebSocket架构设计思路主要包括以下几个方面: 1. 建立持久连接:与传统的HTTP请求不同,WebSocket通过建立一条持久连接来实现双向通信。这样可以避免在每次通信时都要重新建立连接的开销,提高了通信的效率。 2. 采用事件驱动模型:WebSocket采用事件驱动模型,通过事件回调机制来处理服务器和客户端之间的消息交互。当有新的消息到达时,服务器会触发相应的事件,调用相应的回调函数进行处理,从而实现实时的双向通信。 3. 支持多种消息格式:WebSocket不仅支持传输文本数据,还可以传输二进制数据,这使得WebSocket可以适用于各种不同的应用场景,如实时聊天、实时推送、在线游戏等。 4. 异步非阻塞模型:WebSocket的通信采用异步非阻塞模型,客户端和服务器可以同时进行多个通信操作,提高了系统的并发性能。 5. 跨域通信支持:由于安全原因,浏览器限制了跨域通信,但WebSocket提供了对跨域通信的支持。通过使用WebSocket协议,可以实现跨域的实时通信。 综上所述,WebSocket架构设计思路主要包括建立持久连接、采用事件驱动模型、支持多种消息格式、异步非阻塞模型和跨域通信支持等方面,这些设计思路使得WebSocket成为一种强大的实时通信协议,适用于各种不同的应用场景。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [再谈websocket,论架构设计](https://blog.csdn.net/niugang0920/article/details/83686205)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值