程序包 com.iohao.game.action.skeleton.core.runner
package com.iohao.game.action.skeleton.core.runner
业务框架 - Runner 扩展机制,该机制类似于 Spring CommandLineRunner 的启动项,它能够在逻辑服务器启动之后调用一次 Runner 接口实现类,让开发者能够通过实现 Runner 接口来扩展自身的系统。
Runner 机制,会在逻辑服与 Broker(游戏网关)建立连接之前、之后分别触发一次对应的方法。
for example
// 路由访问权限以 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);
}
}
// MyRunner
public class MyRunner implements Runner {
@Override
public void onStart(BarSkeleton skeleton) {
... ... 省略部分代码
}
}
// 游戏对外服
public class MyExternalServer extends ExternalBrokerClientStartup {
@Override
public BarSkeleton createBarSkeleton() {
// 游戏对外服不需要业务框架,这里给个空的
BarSkeletonBuilder builder = BarSkeleton.newBuilder();
// 路由访问权限以 Runner 机制扩展
builder.addRunner(new ExternalAccessAuthenticationRunner());
// MyRunner
builder.addRunner(new MyRunner());
return builder.build();
}
}
- 作者:
- 渔民小镇
- 另请参阅:
- 日期:
- 2024-06-05