Hi, 三刀兄

根据我在项目中的实际使用,对smart-socket做了一些重构,主要有以下几点:

1、AioSession中增加idGen,用来在并发环境下生成sessionId,同时根据这个SessionId覆写了AioSession的equals,hashCode方法
2、取消MessageProcessor的接口,在AioSession中增加process和stateEvent的方法
3、增加SessionFactory接口,通过newSession方法来产生AioSession
4、修改Filter接口,更名为Plugin,并增加start和stop两个方法

之前smart-socket的MessageProcessor和Filter接口两者功能上太类似,
因此我把MessageProcessor的接口方法放到AioSession中,
当需要实现具体的业务时,就继承AioSession,并覆写process(T msg)和stateEvent(event, throwable)的方法来实现。

具体AioSession的生成,就交给SessionFactory来完成,在我的设想中,SessionFactory还可以结合Plugin来实现AioSession池,这个是后话啦。

Plugin的接口跟原先Filter类似,我的想法是Plugin定位在全局的状态和信息监控,增加的start和stop两个方法是用来管理Plugin的生命周期,
比如当实现AioMonitor的时候,就需要在start中启动定时任务,在stop中关闭。

以上我的一点愚见,希望刀兄多多指教