iohao / ioGame

无锁异步化、事件驱动架构设计的 java netty 网络编程框架; 轻量级,无需依赖任何第三方中间件或数据库就能支持集群、分布式; 适用于网络游戏服务器、物联网、内部系统及各种需要长连接的场景; 通过 ioGame 你可以很容易的搭建出一个集群无中心节点、集群自动化、分布式的网络服务器;FXGL、Unity、UE、Cocos Creator、Godot、Netty、Protobuf、webSocket、tcp、socket;java Netty 游戏服务器框架;
http://game.iohao.com
GNU Affero General Public License v3.0
876 stars 190 forks source link

广播后怎么获取广播的的数据Message,没有有回调函数啊 #247

Closed 110jiangnan closed 4 months ago

110jiangnan commented 7 months ago

游戏的同步数据需要全部存储,像这个广播,我想获取广播的数据message。自己组装的话有点麻烦。有没有回调函数、拦截器之类的。 flowContext.broadcast(CmdInfo.of(1,2), gameObjHandle.allGameObj, flowContext.getUserId());

chenmaochang commented 7 months ago

gameObjHandle.allGameObj正是你广播出去的业务数据,如果你要那个externalMassage,还真得自己组装一下

广播的设计即使有回调函数,也最多是全部完成后给个无参数的callback

iohao commented 7 months ago

目前还不知道这个 Message 指的是什么。或许你可以重写 flowContext.broadcast 方法,之后来保存 Message。

public class MyFlowContext extends FlowContext {
  @Override
  public void broadcast(ResponseMessage responseMessage) {
        // ... 你的其他操作(存储)

      super.broadcast(responseMessage);
  }
}