此信息同时发布在www.humanmonth.cn
上,源码下载地址:下载地址
。
HIM
是一个由
Flex+Java
实现,基于
Socket
连接的在线聊天程序。下图为服务端结构图。
<!----><!---->
<!---->
服务端工作的流程:服务端启动
Server
后,
Server
将监听端口,等待用户登录。当
Server
接收到用户登录时,会新建一个继承自
Thread
的
Processor
对像,
Processor
对像内会创建
User
、
Protocol
等对像。
User
保存用户的信息,包括
IP
、
Port
、
Name
等,而
Protocol
为协议处理类,他把
Processor
接收到的流转化为字符串并组装成方便
Action
调用的
RequestData
对像。
Processor
接收到请求,并包装成
RequestData
对像后,将在
ActionRegister
中查找可以处理该
RequestData
对像的
Action
类,然后把
RequestData
对像传给
Action
对像处理。
服务端特点:端口由
Server
类监听,因为应用层没有走
Http
协议,所以不依赖于
Web
容器。另外前后端是用
XML
传输的,所以对前台的
Flex
也没有依赖。
扩展:需要扩展功能时可以通过实现
Action
接口便可(右上角的黑色方框中的类为功能类),其它的容器类一般不用改。
与
Servlet
容器比较:为了避免误解,首先说明的是
HIM
的服务端充其量只是一个简单的多线程容器,代码只有几百行,当然不能和
Servlet
容器相比。
HIM
服务端只是模仿了
Servlet
容器一小部份功能实现的实现模式而已。
HIM
中的
Server
负责监听端口,
Processor
和
Protocol
负责把
Socket
中的流按协议转化为请求对像
RequestData
(类似
Servlet
中的
Request
对像)。而图中右上角的
Action
接口就类似于
Servlet
接口,我们可以通过实现
Action
接口来扩充功能。而
ActionRegister
类就类似
Web.xml
文件,负责装配
Action
。
测试用例:比较遗憾的是整个项目没有任何测试用例。并不是说本人没有写测试用例的习惯,而是整个服务端启动所需要的时间大概一秒左右。出问题了,直接用
log
调试便可。像就页面的
js
调试一样快,为
js
写测试用例,好像是吃力不讨好的工作。
补充说明:其实这里图画得复杂,代码也实现得复杂。如果按照
sample
and dirty
的风格来实现,一百行代码左右就可以实现功能。但为了方便以后扩展和代码重用,把代码按功能点分开多个层来实现。另一方面,由于不是商业项目,实现上不太严格,异常有处理,但比粗糙。而同步方面,有几处没有处理,但影响不严重。由于某些原因,代码是基于
jdk1.4
的,以后升级到
jdk5.0
后再处理。有兴趣的可以下载源码看看,下面为
HIM_v0.1.3的demo
:
分享到:
相关推荐
"HIM MOD"是专门为《我的世界》设计的一款模组,它引入了一个名为HIM的角色,为游戏增添了新的剧情和挑战。HIM,全称Herobrine in Minecraft,是一个在《我的世界》社区中流传已久的都市传说角色,其存在激发了玩家...
HIM服务器登录器
HIM指令大全档
在本文中,我们将深入探讨基于STM32F429微控制器的HIM串口屏应用,特别是关于"HIM_UART5"项目。这个项目包含了HIM上位机端的代码和STM32微控制器端的代码,两者都经过了实际测试,确保了稳定性和可靠性。我们将围绕...
例句:Jim is such a smart boy that everyone likes him. 这种句型结构用于表示某个结果或状态特别优异或特别不好,导致某个结果或状态。“Such”是句型结构的关键词,表示特别的意思,后面可以加上that,表示某个...
AOC冠捷LV232HIM液晶显示器驱动(2013年12月27日发布)该驱动为AOC LV242WED液晶显示器驱动驱动程序。一般液晶显示器都会有即插即用的功能,用不到显示器驱动。但如果你的显示器由于其他原因出现故障无法显示,可以...
该软件程序是连接人机界面和PLC的 可以通过人机界面直接来控制PLC里面的各个动作
在这个实例中,我们关注的是"维纶HIM与连鸿多台温控通讯实例",它涉及到维纶(Weinview)的人机界面(HIM)与连鸿(Lianhong)的多台温控器之间的MODBUS RTU 485通讯。下面将详细讲解这个通讯过程中的核心知识点。 ...
标题和描述中的“他就是我的太阳!我爱他”似乎是一种情感表达,而非与IT行业直接相关的主题。然而,考虑到提供的标签与文件名,我们可以推测这可能涉及到个人的情感记忆存储,或者是某个人对另一个人的独特象征,这...
空气质量的界面
这类电缆通常具有特殊的结构和材料,能够抵抗海水侵蚀,同时提供必要的机械强度和电气性能。在HIM-250海缆埋设机的作业过程中,漂浮电缆可能用于连接海缆铺设船和海底电缆,以便于控制和引导电缆的沉放位置和深度。 ...
山东春考英语常见结构总结涵盖了九个方面的英语语法知识点,包含 as…as 结构、as soon as 结构、动词-ing 形式、fill…with 结构、be good/bad for 结构、be used to 结构、both…and…结构、can’t help doing sth...
* 例句:With Mary to help him, he is sure to succeed. 有玛丽的帮助,他一定能成功。 * 例句:With winter coming on, it is getting colder and colder day by day. 冬天慢慢到来,天气也一天比一天冷了起来。 ...
标题"PMSM.rar_PMSM 控制_foc_him8bc_pmsm control_pmsm foc"揭示了这个压缩包内容主要围绕永磁同步电机(PMSM)的控制技术,特别是采用磁场定向控制(FOC)的方式。Microchip是一家知名的微控制器和半导体解决方案...
宾语是英语句子结构的另一个重要组成部分,它是指谓语的受事,例如:“I gave him a book.”(我给了他一本书),“She ate an apple.”(她吃了一苹果)等。 六、定语和状语 定语和状语是英语句子结构的次要组成...
标题中的“HIM program_modbusRTU_”很可能是指一个基于Modbus RTU协议的人机交互界面(HMI)程序。Modbus RTU是一种广泛应用于工业自动化领域的通信协议,允许不同设备之间交换数据,尤其适合在串行通信环境中。在...
"Report-proj_vis&him.rar_arrow1bh_cbir content based"这个标题暗示了我们关注的是一个关于CBIR系统的项目报告,其中可能包含了对箭头1BH方法的深入研究。 箭头1BH方法是一种用于图像特征提取和比较的技术,它...
标题中的“HIM_PANIPAT_VIKAS_hmi_”可能是指一个特定的HMI(Human Machine Interface,人机交互界面)项目,这个项目可能是为位于印度PANIPAT地区的Vikas系统设计的。"HMI Backup for reference programming"这一...