接口 Runner
- 所有已知子接口:
EventBusRunner
,PulseRunner
- 所有已知实现类:
AbstractEventBusRunner
,CreatePulsesRunner
public interface Runner
Runner 机制,会在逻辑服与 Broker(游戏网关)建立连接之前(onStart)、之后(onStartAfter)分别触发一次。相关文档
1.在逻辑服与 Broker(游戏网关)建立连接之前调用一次,触发for exampleonStart(BarSkeleton)
方法。 2.在逻辑服将信息注册到 Broker(游戏网关)后调用一次,触发onStartAfter(BarSkeleton)
方法。
// 路由访问权限以 Runner 机制扩展
public class ExternalAccessAuthenticationRunner implements Runner {
@Override
public void onStart(BarSkeleton skeleton) {
var accessAuthenticationHook = ExternalGlobalConfig.accessAuthenticationHook;
// 表示登录才能访问业务方法
accessAuthenticationHook.setVerifyIdentity(true);
// 添加不需要登录(身份验证)也能访问的业务方法 (action)
accessAuthenticationHook.addIgnoreAuthenticationCmd(1, 1);
// 添加不需要登录(身份验证)也能访问的主路由(范围)
accessAuthenticationHook.addIgnoreAuthenticationCmd(2);
// 拒绝主路由为 10 的访问请求
accessAuthenticationHook.addRejectionCmd(10);
// 拒绝主路由为 11、子路由为 1 的访问请求
accessAuthenticationHook.addRejectionCmd(11, 1);
}
}
// 游戏对外服
public class MyExternalServer extends ExternalBrokerClientStartup {
@Override
public BarSkeleton createBarSkeleton() {
// 游戏对外服不需要业务框架,这里给个空的
BarSkeletonBuilder builder = BarSkeleton.newBuilder();
// 路由访问权限以 Runner 机制扩展
builder.addRunner(new ExternalAccessAuthenticationRunner());
return builder.build();
}
}
for example
BarSkeletonBuilder builder = ...
builder.addRunner(new Runner() {
@Override
public void onStart(BarSkeleton skeleton) {
log.info("在逻辑服与 Broker(游戏网关)建立连接之前调用一次");
}
@Override
public void onStartAfter(BarSkeleton skeleton) {
log.info("在逻辑服与 Broker(游戏网关)建立连接之后调用一次");
}
});
- 作者:
- 渔民小镇
- 日期:
- 2023-04-23
-
方法概要
修饰符和类型方法说明default String
name()
runner namevoid
onStart
(BarSkeleton skeleton) 在逻辑服与 Broker(游戏网关)建立连接之前调用一次。default void
onStartAfter
(BarSkeleton skeleton) 在逻辑服与 Broker(游戏网关)建立连接之后调用一次。
-
方法详细资料
-
onStart
在逻辑服与 Broker(游戏网关)建立连接之前调用一次。此时还不能与 Broker(游戏网关)通信。
- 参数:
skeleton
- 业务框架
-
onStartAfter
在逻辑服与 Broker(游戏网关)建立连接之后调用一次。可以与 Broker(游戏网关)通信了。 如果没有特殊需求的,使用 onStart 方法就可以了。
- 参数:
skeleton
- 业务框架
-
name
runner name- 返回:
- name
-