接口 EventBusRunner
- 所有超级接口:
Runner
- 所有已知实现类:
AbstractEventBusRunner
分布式事件总线 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
-
方法概要
修饰符和类型方法说明default EventBus
ofEventBus
(String id) new EventBusdefault void
onStart
(BarSkeleton skeleton) 在逻辑服与 Broker(游戏网关)建立连接之前调用一次。void
registerEventBus
(EventBus eventBus, BarSkeleton skeleton) 可在此方法中注册订阅者 example从接口继承的方法 com.iohao.game.action.skeleton.core.runner.Runner
name, onStartAfter
-
方法详细资料
-
onStart
从接口复制的说明:Runner
在逻辑服与 Broker(游戏网关)建立连接之前调用一次。此时还不能与 Broker(游戏网关)通信。
-
ofEventBus
new EventBus- 参数:
id
- eventBus id- 返回:
- EventBus
-
registerEventBus
可在此方法中注册订阅者 exampleeventBus.register(new YourEventBusSubscriber());
- 参数:
eventBus
- EventBusskeleton
- 业务框架
-