当前位置: 首页 > 工具软件 > Herm > 使用案例 >

Herm统一分发框架的分发各种对象的流程

叶恩
2023-12-01

分发框架管理一个树状的Handlers,Handler分为通用的(general)和专有的(specific)。通用的Handler是为所有的对象服务;专有的Handler是为某个对象服务(常见的是Role)。框架结构描述如下:

        cmd1----->handlers

        cmd2----->handlers

        cmdN----->handlers

                                 +------->cmd1------>handlers

                                 |

        oid1--------------+-------->cmd2------>handlers

                                 |

                                 +--------->cmd3----->handlers

 

        oid2----......

 

这里以网络消息为例,说明统一框架是如何分发一个消息的。前提是各种外部对象将oid-type-handler注册到分发器中。

1. 得到一条消息,得到object id和消息command。

2. 在general handlers中,查看command是否有对应的Handlers,有的话,调用Handler的接口。

3. 根据object id定位到该object的specific的Handlers,有的话,调用Handler的接口。

 

这是一个很简单的东西,看似没什么用。他的作用巨大,实际开发中大大简化了消息处理流程,消除了程序耦合度。

这个东西是由Herm base库提供,应用程序可以独立地使用。Herm framework也使用这个分发器分发消息。framework中是一个session维护一个分发器。

简单说一下不通的服务器使用分发器的区别。网游服务器一般有接入服务器和逻辑服务器。接入服务器管理多个session,收到消息后,将不同的session的消息合成一个session发给逻辑服务器,也就说逻辑服务器就一个session。接入服务器将specific handlers个数全设成0;逻辑服务器得到消息后一般须有借助specific handlers将消息分发给真正的处理对象。

转载于:https://www.cnblogs.com/herm/archive/2011/04/24/2773946.html

 类似资料: