接口 EventBusRunner

所有超级接口:
Runner
所有已知实现类:
AbstractEventBusRunner

public interface EventBusRunner extends Runner
分布式事件总线 Runner,将 EventBusRunner 添加到业务框架后,分布式事件总线相关功能才会生效。

 // 通过业务框架的 addRunner 方法来扩展分布式事件总线相关内容 (Runner 扩展机制),我们将 UserLoginEventMessage、EmailEventBusSubscriber 注册到 EventBus 中。
 public class MyLogicStartup extends AbstractBrokerClientStartup {
     ... ...省略部分代码

     @Override
     public BarSkeleton createBarSkeleton() {
         // 业务框架构建器
         BarSkeletonBuilder builder = ...

         // 开启分布式事件总线。逻辑服添加 EventBusRunner,用于处理 EventBus 相关业务
         builder.addRunner(new EventBusRunner() {
             @Override
             public void registerEventBus(EventBus eventBus, BarSkeleton skeleton) {
             }
         });

         return builder.build();
     }
 }
 
注意事项
     如果你的逻辑服没有任何订阅者,只是发送事件,也是需要配置 EventBusRunner 的,这是因为事件总线是按需要加载的功能。
     ioGame 功能特性很多,但不是每个项目都需要这些功能。按需加载有很多好处,比如 email 逻辑服后续的业务不想参与任何订阅了,那么把这个 Runner 注释掉就行了。其他代码不用改,这样也不会占用资源。
     所以,需要将 EventBusRunner 添加到业务框架后,分布式事件总线相关功能才会生效。
 
从以下版本开始:
21.10
作者:
渔民小镇
日期:
2024-06-06
  • 方法详细资料

    • onStart

      default void onStart(BarSkeleton skeleton)
      从接口复制的说明: Runner
      在逻辑服与 Broker(游戏网关)建立连接之前调用一次。
           此时还不能与 Broker(游戏网关)通信。
       
      指定者:
      onStart 在接口中 Runner
      参数:
      skeleton - 业务框架
    • ofEventBus

      default EventBus ofEventBus(String id)
      new EventBus
      参数:
      id - eventBus id
      返回:
      EventBus
    • registerEventBus

      void registerEventBus(EventBus eventBus, BarSkeleton skeleton)
      可在此方法中注册订阅者 example
      
           eventBus.register(new YourEventBusSubscriber());
       
       
      参数:
      eventBus - EventBus
      skeleton - 业务框架