这两天看了下nadron和LDGame,梳理了下event事件在nadron中的处理和传播流程。首先,客户端发来的Event对象通过Pipeline传到了LDGameRoom中,然后守护线程Lane将Event对象分派到对应的PlaySession中进行处理,最后将处理好之后结果通过广播通知房间内的其他所有玩家。调试截图如下:
通过这张调试图可以发现,事件最终传到了LDGameRoom的DefaultSessionHanlder来进行游戏逻辑的处理,代码如下:
每一个玩家在登陆后都会注册一个匿名内部类DefaultSessionHanlder来进行游戏逻辑的处理