现在herm framework,只支持1层协议的分发。对于嵌套的协议目前无法分发。
嵌套协议在实际开发中,很有可能遇到,有必要对这类需求提供支持。
嵌套协议像下面的样子:
protocol1
|--- type1---code1----| protocol 2|
protocol2
|--- type2---code2----| ----data----|
目前,Session里维护一个HandlerMgr,记为HMgr1; 考虑再加一个HandlerMgr,叫做HMgr2吧。Framework怎么知道要用二级的HMgr2去分发消息呢? 加须要嵌套的协议的type1&code1到HMgr2中,当分发消息时,如果HMgr2对象中有可分发handler,判断消息包中的type&code是否和type1&code1一样,一样就用,type2&code2去分发protocol2的消息。
如果protocol1嵌套protocol3,那就维护多个HMgr2。为了提高效率,可考虑将type1&code1做为key,HMgr2作为value维护一个hashtable.