ESFramework介绍之(12)―― 基于Tcp连接池的消息处理器
来源:互联网 发布:php用户注册登录系统 编辑:程序博客网 时间:2024/06/06 00:37
前面的两篇文章我们已经介绍了Tcp连接池和Tcp连接池管理器,并且引入了ITcpPool接口,这个接口可以将单个连接池和一组连接池统一起来,使它们有相同的外部使用方式。现在我们需要考虑的问题是,当消息分派器分派一个接收到的请求时,如果这个请求需要被FS上的某个功能插件处理,那么消息分派器是如何将这个消息分派到对应的FS上去的?
回顾介绍消息分派器时画出的各消息组件联系图,我们非常自然的想到,创建一个消息处理器,这个消息处理器将请求消息通过Tcp连接池转发给对应FS处理。这样的一个消息处理器称为“基于Tcp连接池的消息处理器”,它在消息组件联系图中的位置如下:
当有一个请求被分派到基于连接池的消息处理器时,它就从Tcp连接池中Rent一个NetworkStream,然后发送请求,并将接收到的回复返回给消息分派器。基于连接池的消息处理器仍然实现了IDataDealer接口,其借助ITcpPool组件来实现功能。下面给出简单伪码,因为整个实现比较复杂(错误处理、异常处理、ReRent机制等),代码比较多,所以就不列出来了,大家只要了解了主要的思想就行了,而这个思想是比较简单的。
{
/*
1.Rent TcpStream
2.Send Request
3.Recieve Response
4.Return Response
*/
}
最后提一句,我们在上图的AS和FS中都看到了网络组件,如果AS也采用Tcp,那么这两个组件是相同的,也就是说Tcp组件可以很方便的复用。
在FS中,Tcp网络组件和功能插件之间是通过虚线连接起来的,也就是说网络组件并不会直接与功能插件交互,它们之间仍然存在这一个纽带,这就是消息处理器工厂,那么用于管理功能插件的工厂,就叫做“功能插件处理器工厂FunAddinDealerFactory”,这将在下文中介绍。
感谢关注!
上一篇:ESFramework介绍之(11)-- Tcp连接池管理器
下一篇:ESFramework介绍之(13)-- 功能插件处理器工厂
转到 :ESFramework 可复用的通信框架(序)
- ESFramework介绍之(12)―― 基于Tcp连接池的消息处理器
- ESFramework介绍之(31)―― 消息分类及对应的处理器
- ESFramework介绍之(3)――消息处理器和处理器工厂
- ESFramework介绍之(10)-- Tcp连接池
- ESFramework介绍之(6)―― 基于C/S的4层架构概述
- ESFramework介绍之(11)-- Tcp连接池管理器
- ESFramework介绍之(32)―― Tcp客户端核心组件关系图
- ESFramework介绍之(18)―― Tcp用户管理器组件
- ESFramework介绍之(16)―― Tcp数据自动发送器ITcpAutoSender
- ESFramework介绍之(30)―― 消息侦察者 INetMessageSpy
- ESFramework介绍之(5)――消息分派器IMessageDispatcher
- ESFramework介绍之(4)――消息拦截器INetMessageHook
- ESFramework介绍之(2)――网络通信消息NetMessage
- ESFramework介绍之(1)――网络通信消息协议接口IContract
- ESFramework介绍之(35)―― IMessageTransceiver
- ESFramework介绍之(29)―― 插件公共设施 AddinUtil
- ESFramework介绍之(28)―― Udp组件
- ESFramework介绍之(24)―― 日志记录IEsbLogger
- VS小插件--属性自动生成器
- ESFramework介绍之(16)―― Tcp数据自动发送器ITcpAutoSender
- ESFramework介绍之(15)-- IRAS
- ESFramework介绍之(14)-- AS与FS通信方案
- ESFramework介绍之(13)-- 功能插件处理器工厂
- ESFramework介绍之(12)―― 基于Tcp连接池的消息处理器
- ESFramework介绍之(11)-- Tcp连接池管理器
- ESFramework介绍之(10)-- Tcp连接池
- ESFramework介绍之(9)-- 插件对(Addin Pair)调试“框架”
- ESFramework介绍之(8)-- 客户端插件IPassiveAddin
- mfc中句柄与指针的区别
- ESFramework介绍之(7)-- 服务器代理IServerAgent
- ESFramework介绍之(5)――消息分派器IMessageDispatcher
- ESFramework介绍之(4)――消息拦截器INetMessageHook