程序包 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
  • 说明
    Runner 机制,会在逻辑服与 Broker(游戏网关)建立连接之前(onStart)、之后(onStartAfter)分别触发一次。
    Runners 管理器