一、 项目概述
1 项目背景
此框架是为了快速搭建客户端之间能够完成客户端之间进行一对一,一对多,广播的的通信功能,也可以客户端向服器请求的动作,服务器进行响应的框架。
c/s通讯系统框架为团队或个人快速搭建c/s系统提供支持,开发人员不必重复搭建基础功能和软件架构,框架提供了开发包,可以节约开发成本,开发框架已经完成了项目的许多工作量,只需程序员专注业务部分的开发工作,于是就提高了开发效率和开发成本。
2 开发环境
开发工具
Eclipse
开发语言
Java
3 技术核心
技术核心有两个,第一,对服务器和客户端的分层结构,第二,服务器处理客户端的请求
服务器和客户端的分层结构
服务器和客户机是一对多的结构,下面展示的是一对一模型
其中绿色的框部分为做成的系统框架,而服务器和客户端的应用层和业务层由使用该框架的程序员完成。
应用层需要程序员编写还要对用户的动作进行封装,封装为client层可以接受的字符串。(如果为请求的话格式是:动作?执行动作需要的信息(json字符串),如果是通讯的话格式是:FROM:TO//command?message),再通过communication对消息再封装的传递到服务器的conversation后,进行解析传来的字符串是请求还是通讯,如果请求的话根据动作找到对应的业务层方法,并且解析参数将参数传入进去,得到返回值,再通过communication传回到客户机,如果是通讯的话,根据TO和command的信息进行传递消息。
在服务器和客户机中每层会产生一些内部信息,采用的是监听模式,一直往最上层发,直到发送到应用层。
服务器处理客户端请求和客户端间的通讯
一.服务器处理客户端请求
客户端传递过来的请求,首先扫描包,然后根据动作在服务端的业务层找到对应的方法,和解析传递过来的json字符串,然后执行该方法。
由于传递过来的动作要和方法对应,还要知道解析json字符串后的实参如何对应方法的形参,以及扫描包要扫出来的包含动作的类,因此程序员只需在处理客户端请求的类中要使用下面三种注解,
类注解,表明扫描包时,就扫此类,
方法注解,为了动作和执行的方法一一对应,
方法参数注解,为了实参和方法形参的对应,
二.客户端间的一对一和一对多之间的通讯如下图所示
客户端之间的通讯要通过服务器的转发
二,总结
要站在做框架的角度上考虑问题,和编写代码,因为使用框架的是程序员而不是用户。代码:链接:https://pan.baidu.com/s/1dGKK4Xb 密码:ruvs