`
presses
  • 浏览: 116090 次
  • 性别: Icon_minigender_1
  • 来自: 中山
社区版块
存档分类
最新评论

HIM服务端结构

    博客分类:
  • HIM
阅读更多

 

此信息同时发布在www.humanmonth.cn 上,源码下载地址:下载地址

 

HIM 是一个由 Flex+Java 实现,基于 Socket 连接的在线聊天程序。下图为服务端结构图。

 

<!----><!---->HIM服务端结构图 <!---->

 

服务端工作的流程:服务端启动 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

分享到:
评论
4 楼 darchen 2009-06-16  
网站咋打不开呢.
3 楼 bright82 2008-12-17  
看了下,楼主的设计模式不错!值得借鉴
2 楼 taupo 2008-12-16  
楼主,用socket可以实现对象的传输吗?
比如我后台有一个List类型的对象,需要传到flex中,如何做?
难道要把List里的数据都封装成String再传到flex中?
1 楼 beiyangshuishi 2008-09-28  
东西挺好,我可以借鉴了

相关推荐

    我的世界HIM MOD_minecraft_

    "HIM MOD"是专门为《我的世界》设计的一款模组,它引入了一个名为HIM的角色,为游戏增添了新的剧情和挑战。HIM,全称Herobrine in Minecraft,是一个在《我的世界》社区中流传已久的都市传说角色,其存在激发了玩家...

    HIM服务器登录器

    HIM服务器登录器

    HIM指令大全档

    HIM指令大全档

    HIM_UART5.zip

    在本文中,我们将深入探讨基于STM32F429微控制器的HIM串口屏应用,特别是关于"HIM_UART5"项目。这个项目包含了HIM上位机端的代码和STM32微控制器端的代码,两者都经过了实际测试,确保了稳定性和可靠性。我们将围绕...

    初中英语重点句型结构.pdf

    例句:Jim is such a smart boy that everyone likes him. 这种句型结构用于表示某个结果或状态特别优异或特别不好,导致某个结果或状态。“Such”是句型结构的关键词,表示特别的意思,后面可以加上that,表示某个...

    AOC冠捷LV232HIM液晶显示器驱动程序

    AOC冠捷LV232HIM液晶显示器驱动(2013年12月27日发布)该驱动为AOC LV242WED液晶显示器驱动驱动程序。一般液晶显示器都会有即插即用的功能,用不到显示器驱动。但如果你的显示器由于其他原因出现故障无法显示,可以...

    HIM和PLC连接程序

    该软件程序是连接人机界面和PLC的 可以通过人机界面直接来控制PLC里面的各个动作

    维纶HIM与连鸿多台温控通讯实例

    在这个实例中,我们关注的是"维纶HIM与连鸿多台温控通讯实例",它涉及到维纶(Weinview)的人机界面(HIM)与连鸿(Lianhong)的多台温控器之间的MODBUS RTU 485通讯。下面将详细讲解这个通讯过程中的核心知识点。 ...

    He is my sun! I love him

    标题和描述中的“他就是我的太阳!我爱他”似乎是一种情感表达,而非与IT行业直接相关的主题。然而,考虑到提供的标签与文件名,我们可以推测这可能涉及到个人的情感记忆存储,或者是某个人对另一个人的独特象征,这...

    HIM UI界面设计

    空气质量的界面

    行业分类-电子-HIM-250海缆埋设机用漂浮电缆的说明分析.rar

    这类电缆通常具有特殊的结构和材料,能够抵抗海水侵蚀,同时提供必要的机械强度和电气性能。在HIM-250海缆埋设机的作业过程中,漂浮电缆可能用于连接海缆铺设船和海底电缆,以便于控制和引导电缆的沉放位置和深度。 ...

    山东春考英语常见结构总结.doc

    山东春考英语常见结构总结涵盖了九个方面的英语语法知识点,包含 as…as 结构、as soon as 结构、动词-ing 形式、fill…with 结构、be good/bad for 结构、be used to 结构、both…and…结构、can’t help doing sth...

    with独立主格结构.doc

    * 例句: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.rar_PMSM 控制_foc_him8bc_pmsm control_pmsm foc"揭示了这个压缩包内容主要围绕永磁同步电机(PMSM)的控制技术,特别是采用磁场定向控制(FOC)的方式。Microchip是一家知名的微控制器和半导体解决方案...

    英语句子结构主谓宾定状补及五个简单句PPT课件.pptx

    宾语是英语句子结构的另一个重要组成部分,它是指谓语的受事,例如:“I gave him a book.”(我给了他一本书),“She ate an apple.”(她吃了一苹果)等。 六、定语和状语 定语和状语是英语句子结构的次要组成...

    HIM program_modbusRTU_

    标题中的“HIM program_modbusRTU_”很可能是指一个基于Modbus RTU协议的人机交互界面(HMI)程序。Modbus RTU是一种广泛应用于工业自动化领域的通信协议,允许不同设备之间交换数据,尤其适合在串行通信环境中。在...

    Report-proj_vis&him.rar_arrow1bh_cbir content based

    "Report-proj_vis&him.rar_arrow1bh_cbir content based"这个标题暗示了我们关注的是一个关于CBIR系统的项目报告,其中可能包含了对箭头1BH方法的深入研究。 箭头1BH方法是一种用于图像特征提取和比较的技术,它...

    HIM_PANIPAT_VIKAS_hmi_

    标题中的“HIM_PANIPAT_VIKAS_hmi_”可能是指一个特定的HMI(Human Machine Interface,人机交互界面)项目,这个项目可能是为位于印度PANIPAT地区的Vikas系统设计的。"HMI Backup for reference programming"这一...

Global site tag (gtag.js) - Google Analytics