`
presses
  • 浏览: 119433 次
  • 性别: 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与连鸿多台温控通讯实例",它涉及到维纶(Weinview)的人机界面(HIM)与连鸿(Lianhong)的多台温控器之间的MODBUS RTU 485通讯。下面将详细讲解这个通讯过程中的核心知识点。 ...

    HIM和PLC连接程序

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

    HIM服务器登录器

    HIM服务器登录器

    HIM_UART5.zip

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

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

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

    HIM UI界面设计

    空气质量的界面

    HIM指令大全档

    根据提供的文件信息,我们可以归纳出一系列与"HIM指令大全档"相关的知识点,这些知识点主要涉及游戏内的各种命令、操作及功能。以下是对标题、描述、标签以及部分内容中的关键信息进行详细解析: ### HIM指令大全档...

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

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

    独立主格结构与动名词复合结构.ppt

    例如:"Seeing the boy crying, she went over to comfort him." 在这个句子中,“seeing the boy crying”是动名词复合结构,"seeing"是动名词,"the boy"是逻辑主语。 两者之间的区别主要在于逻辑主语的关系。在...

    He is my sun! I love him

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

    独立主格结构又称绝对结构或复合结构.doc

    独立主格结构是一种特殊的非谓语形式,在英语中被广泛使用,特别是在书面语中,它能够简洁、清晰地表达时间、原因、条件、行为方式或伴随情况等状语信息,而不需要通过完整的从句来实现。这个结构由一个名词或代词...

    2022高考英语题型讲解全套资料库独立主格结构参照.pdf

    - 名词/主格代词 + 现在分词,表示主动或进行的动作,如 "The girl staring at him, he didn't know what to say." - 名词/主格代词 + 过去分词,表示被动或完成的动作,如 "The problems solved, the quality has ...

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

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

    2013高考英语 最后冲刺精准攻破复习死角 独立主格结构、with的复合结构

    6. "He always dreams of there being a chance for him to go abroad for further study." 梦想某事发生通常用"dream of +宾语+动名词",这里的"there being"是动名词形式,表示梦想有机会。 7. "Agriculture is ...

    with独立结构精讲.pdf

    例句:So many people to help him, he is sure to succeed. (有这么多人帮忙,他肯定能成功。) 4. 名词/代词 + 名词 名词作为逻辑主语的补充信息,说明主语的特性,例如: 例句:Many people joined in the work...

    高中英语语法精讲独立主格结构.doc

    【高中英语语法精讲:独立主格结构】 独立主格结构是英语中一种特殊的非谓语动词形式,它在句子中充当状语,但其逻辑主语与句子的主语并不相同,而是独立存在的。这种结构看似独立,实则仍属于句子的一部分,通常...

    独立主格结构讲解PPT学习教案.pptx

    - with复合结构: "Last night I followed him, sword in hand." 这里的 "sword in hand" 也是伴随状语,表示 "with a sword in my hand"。 需要注意的是,独立主格结构和with复合结构都不能包含动词的谓语形式,...

Global site tag (gtag.js) - Google Analytics