类 FlowContext

java.lang.Object
com.iohao.game.action.skeleton.core.flow.FlowContext
所有已实现的接口:
FlowOptionDynamic

public class FlowContext extends Object
业务框架 flow 上下文
     生命周期存在于这一次的 flow 过程

     实现了类型明确的动态属性接口 FlowOptionDynamic ,实现类只需要实现 getOptions 方法就能具有动态属性的功能。
     动态属性可以更方便的为 FlowContext 实现属性的扩展,以方便开发者。

     扩展属性接口 FlowAttr

     FlowContext 还支持开发者自定义,具体参考
     文档 - FlowContext
 
作者:
渔民小镇
另请参阅:
日期:
2021-12-21
  • 构造器详细资料

    • FlowContext

      public FlowContext()
  • 方法详细资料

    • setMethodResult

      public FlowContext setMethodResult(Object methodResult)
      设置响应结果
      参数:
      methodResult - 响应结果
      返回:
      this
    • getHeadMetadata

      public HeadMetadata getHeadMetadata()
    • inOutStartTime

      public void inOutStartTime()
      开始时间记录,用于 InOut 插件 fuckIn 方法的时间记录
           记录 InOut 插件的开始时间
      
           由于时间记录会比较常用,所以有必要放到该类中
       
    • getInOutTime

      public long getInOutTime()
      InOut 执行完成后所消耗的时间
           在此之前,确保调用了 this.inOutStartTime() 方法
       
      返回:
      消耗时间 = System.currentTimeMillis - inOutStartTime
    • updateAttachment

      default void updateAttachment(UserAttachment attachment)
      更新元信息
           [同步更新]
      
           将元信息更新到玩家所在的游戏对外服中
       
      参数:
      attachment - 元信息
    • updateAttachmentAsync

      default void updateAttachmentAsync(UserAttachment attachment)
      更新元信息
           [异步更新]
      
           将元信息更新到玩家所在的游戏对外服中
       
      参数:
      attachment - 元信息
    • updateAttachment

      default void updateAttachment()
      更新元信息
           [同步更新]
      
           将元信息更新到玩家所在的游戏对外服中
       
    • updateAttachmentAsync

      default void updateAttachmentAsync()
      更新元信息
           [异步更新]
      
           将元信息更新到玩家所在的游戏对外服中
       
    • getAttachment

      default <T extends UserAttachment> T getAttachment(Class<T> clazz)
      得到元附加信息
           一般是在游戏对外服中设置的一些附加信息
           这些信息会跟随请求来到游戏逻辑服中
       
      类型参数:
      T - t
      参数:
      clazz - clazz
      返回:
      元附加信息
    • getAttachment

      default <T extends UserAttachment> T getAttachment()
      得到元附加信息

      example

      
           // 自定义 FlowContext
           public class MyFlowContext extends FlowContext {
               MyAttachment attachment;
      
               @Override
               @SuppressWarnings("unchecked")
               public MyAttachment getAttachment() {
      
                   if (Objects.isNull(attachment)) {
                       this.attachment = this.getAttachment(MyAttachment.class);
                   }
      
                   return this.attachment;
               }
           }
      
           // 自定义元信息类
           public class MyAttachment implements Attachment {
               @Getter
               long userId;
           }
       
       
      类型参数:
      T - t
      返回:
      元附加信息
    • invokeExternalModuleCollectMessage

      default ResponseCollectExternalMessage invokeExternalModuleCollectMessage(int bizCode)
      【游戏逻辑服】访问玩家所在的【游戏对外服】,通常是发起请求的游戏对外服
           文档 - 获取游戏对外服的数据与扩展
      
           同步调用
       
      参数:
      bizCode - bizCode
      返回:
      ResponseCollectExternalMessage 一定不为 null
    • invokeExternalModuleCollectMessage

      default ResponseCollectExternalMessage invokeExternalModuleCollectMessage(int bizCode, Serializable data)
      【游戏逻辑服】访问玩家所在的【游戏对外服】,通常是发起请求的游戏对外服
           文档 - 获取游戏对外服的数据与扩展
      
           同步调用
       
      参数:
      bizCode - bizCode
      data - 业务数据
      返回:
      ResponseCollectExternalMessage 一定不为 null
    • createRequestCollectExternalMessage

      default RequestCollectExternalMessage createRequestCollectExternalMessage(int bizCode)
      创建 RequestCollectExternalMessage,会为 RequestCollectExternalMessage 添加 userId、traceId 相关信息
      参数:
      bizCode - 业务码
      返回:
      RequestCollectExternalMessage
    • createRequestCollectExternalMessage

      default RequestCollectExternalMessage createRequestCollectExternalMessage(int bizCode, Serializable data)
      创建 RequestCollectExternalMessage,会为 RequestCollectExternalMessage 添加 userId、traceId 相关信息
      参数:
      bizCode - 业务码
      data - 业务数据
      返回:
      RequestCollectExternalMessage
    • invokeExternalModuleCollectMessage

      default ResponseCollectExternalMessage invokeExternalModuleCollectMessage(RequestCollectExternalMessage request)
      【游戏逻辑服】访问【游戏对外服】,会为 RequestCollectExternalMessage 添加 userId、traceId 相关信息, 如果 request 没有指定 sourceClientId,将会访问所有的游戏对外服。
           文档 - 获取游戏对外服的数据与扩展
      
           同步调用
       
      参数:
      request - request
      返回:
      ResponseCollectExternalMessage 一定不为 null
    • invokeExternalModuleCollectMessageFuture

      default CompletableFuture<ResponseCollectExternalMessage> invokeExternalModuleCollectMessageFuture(int bizCode)
      【游戏逻辑服】访问玩家所在的【游戏对外服】,通常是发起请求的游戏对外服
           文档 - 获取游戏对外服的数据与扩展
      
           异步调用
       
      参数:
      bizCode - bizCode
      返回:
      ResponseCollectExternalMessage 一定不为 null
    • invokeExternalModuleCollectMessageFuture

      default CompletableFuture<ResponseCollectExternalMessage> invokeExternalModuleCollectMessageFuture(int bizCode, Serializable data)
      【游戏逻辑服】访问玩家所在的【游戏对外服】,通常是发起请求的游戏对外服
           文档 - 获取游戏对外服的数据与扩展
      
           异步调用
       
      参数:
      bizCode - bizCode
      data - 业务数据
      返回:
      ResponseCollectExternalMessage 一定不为 null
    • invokeExternalModuleCollectMessageFuture

      default CompletableFuture<ResponseCollectExternalMessage> invokeExternalModuleCollectMessageFuture(RequestCollectExternalMessage request)
      【游戏逻辑服】访问【游戏对外服】,会为 RequestCollectExternalMessage 添加 userId、traceId 相关信息, 如果 request 没有指定 sourceClientId,将会访问所有的游戏对外服。
           文档 - 获取游戏对外服的数据与扩展
      
           异步调用
       
      参数:
      request - request
      返回:
      ResponseCollectExternalMessage 一定不为 null
    • invokeExternalModuleCollectMessageAsync

      default void invokeExternalModuleCollectMessageAsync(int bizCode, Consumer<ResponseCollectExternalMessage> callback)
      【游戏逻辑服】访问玩家所在的【游戏对外服】,通常是发起请求的游戏对外服
           文档 - 获取游戏对外服的数据与扩展
      
           异步调用,回调编码风格,具备 traceId
       
      参数:
      bizCode - bizCode
      callback - 异步回调方法
    • invokeExternalModuleCollectMessageAsync

      default void invokeExternalModuleCollectMessageAsync(int bizCode, Serializable data, Consumer<ResponseCollectExternalMessage> callback)
      【游戏逻辑服】访问玩家所在的【游戏对外服】,通常是发起请求的游戏对外服
           文档 - 获取游戏对外服的数据与扩展
      
           异步调用,回调编码风格,具备 traceId
       
      参数:
      bizCode - bizCode
      data - 业务数据
      callback - 异步回调方法
    • invokeExternalModuleCollectMessageAsync

      default void invokeExternalModuleCollectMessageAsync(RequestCollectExternalMessage request, Consumer<ResponseCollectExternalMessage> callback)
      【游戏逻辑服】访问玩家所在的【游戏对外服】,通常是发起请求的游戏对外服
           文档 - 获取游戏对外服的数据与扩展
      
           异步调用,回调编码风格,具备 traceId
       
      参数:
      request - request
      callback - 异步回调方法
    • invokeExternalModuleCollectMessageAsync

      default void invokeExternalModuleCollectMessageAsync(RequestCollectExternalMessage request, Consumer<ResponseCollectExternalMessage> callback, Executor callbackExecutor)
      【游戏逻辑服】访问【游戏对外服】,如果 RequestCollectExternalMessage 没有指定 sourceClientId,将会访问所有的游戏对外服。
           文档 - 获取游戏对外服的数据与扩展
      
           异步调用,回调编码风格,具备 traceId
       
      参数:
      request - request
      callback - 异步回调方法
      callbackExecutor - 处理回调的 Executor
    • getBrokerClientContext

      default BrokerClientContext getBrokerClientContext()
      游戏逻辑服
           当前 FlowContext 所关联的游戏逻辑服
           BrokerClient
       
      返回:
      游戏逻辑服
    • getBroadcastContext

      default BroadcastContext getBroadcastContext()
      广播通讯上下文
           文档
       
      返回:
      BroadcastContext
    • getBroadcastOrderContext

      default BroadcastOrderContext getBroadcastOrderContext()
      广播通讯上下文 - 严格顺序的
           文档
       
      返回:
      BroadcastOrderContext
    • getInvokeModuleContext

      default InvokeModuleContext getInvokeModuleContext()
      游戏逻辑服与游戏逻辑服之间的通讯上下文
           文档
       
      返回:
      InvokeModuleContext
    • getInvokeExternalModuleContext

      default InvokeExternalModuleContext getInvokeExternalModuleContext()
      游戏逻辑服与游戏对外服的通讯上下文
           文档
       
      返回:
      InvokeExternalModuleContext
    • supplyAsync

      default <U> CompletableFuture<U> supplyAsync(Supplier<U> supplier)
    • getExecutorRegion

      default ExecutorRegion getExecutorRegion()
    • getVirtualExecutor

      default Executor getVirtualExecutor()
      玩家对应的虚拟线程执行器
      返回:
      虚拟线程执行器
    • getVirtualThreadExecutor

      default ThreadExecutor getVirtualThreadExecutor()
      玩家对应的虚拟线程执行器 ThreadExecutor
      返回:
      虚拟线程执行器 ThreadExecutor
      从以下版本开始:
      21.17
    • getExecutor

      default Executor getExecutor()
      玩家对应的用户线程执行器,该执行器也是消费 action 的执行器
      返回:
      用户线程执行器
    • getThreadExecutor

      default ThreadExecutor getThreadExecutor()
      玩家对应的用户线程执行器 ThreadExecutor,该执行器也是消费 action 的执行器
      返回:
      用户线程执行器 ThreadExecutor
      从以下版本开始:
      21.17
    • execute

      default void execute(Runnable command)
      使用用户线程执行任务,该方法具备全链路调用日志跟踪
      参数:
      command - 任务
    • executeVirtual

      default void executeVirtual(Runnable command)
      使用虚拟线程执行任务,该方法具备全链路调用日志跟踪
      参数:
      command - 任务
    • getBarSkeleton

      BarSkeleton getBarSkeleton()
      业务框架
      返回:
      所关联的业务框架
    • getCmdInfo

      default CmdInfo getCmdInfo()
      当前请求的路由
      返回:
      路由
    • getUserId

      default long getUserId()
      userId
      返回:
      userId
    • createRequestMessage

      default RequestMessage createRequestMessage(CmdInfo cmdInfo)
      Create a RequestMessage object and use some of the properties of the current FlowContext HeadMetadata. see HeadMetadata.cloneHeadMetadata()
      参数:
      cmdInfo - cmdInfo
      返回:
      request
    • createRequestMessage

      default RequestMessage createRequestMessage(CmdInfo cmdInfo, Object data)
      创建一个 request 对象,并使用当前 FlowContext HeadMetadata 部分属性。
           HeadMetadata 对象以下属性不会赋值,如有需要,请自行赋值
             sourceClientId
             endPointClientId
             rpcCommandType
             msgId
       
      参数:
      cmdInfo - 路由
      data - 业务参数
      返回:
      request
    • createResponseMessage

      default ResponseMessage createResponseMessage(CmdInfo cmdInfo, Object data)
      创建响应对象,通常用于广播
           响应对象中的 HeadMetadata 对象,会复用当前用户的一些信息;
       
      参数:
      cmdInfo - 路由
      data - 业务数据
      返回:
      响应对象
    • setUserId

      default boolean setUserId(long userId)
      After setting the userId, it means the login is successful
      参数:
      userId - userId
      返回:
      true:login success
      从以下版本开始:
      21.19
    • setUserIdAndGetResult

      default SettingUserIdResult setUserIdAndGetResult(long userId)
      After setting the userId, it means the login is successful
      参数:
      userId - userId
      返回:
      result
      从以下版本开始:
      21.19
    • getEventBus

      default EventBus getEventBus()
      EventBus 是逻辑服事件总线。 EventBus、业务框架、逻辑服三者是 1:1:1 的关系。
      返回:
      EventBus
    • fire

      default void fire(Object eventSource)
      [异步] 发送事件给所有订阅者
           1 给当前进程所有逻辑服的订阅者发送事件消息
           2 给其他进程的订阅者发送事件消息
       
      参数:
      eventSource - 事件源
    • fireSync

      default void fireSync(Object eventSource)
      [同步] 发送事件给所有订阅者
           1 [同步] 给当前进程所有逻辑服的订阅者发送事件消息
           2 [异步] 给其他进程的订阅者发送事件消息
      
           注意,这里的同步仅指当前进程订阅者的同步,对其他进程中的订阅者无效(处理远程订阅者使用的是异步)。
       
      参数:
      eventSource - 事件源
    • fireAny

      default void fireAny(Object eventSource)
      [异步] 给当前进程的订阅者和远程进程的订阅者送事件消息,如果同类型逻辑服存在多个,只会给其中一个实例发送。
           1 给当前进程所有逻辑服的订阅者发送事件消息
           2 给其他进程的订阅者发送事件消息
       
      使用场景
           假设现在有一个发放奖励的邮件逻辑服,我们启动了两个(或者说多个)邮件逻辑服实例来处理业务。
           当我们使用 fireAny 方法发送事件时,只会给其中一个实例发送事件。
       
      参数:
      eventSource - 事件源
    • fireAnySync

      default void fireAnySync(Object eventSource)
      [同步] 给当前进程的订阅者和远程进程的订阅者送事件消息,如果同类型逻辑服存在多个,只会给其中一个实例发送。

      这里的同类型指的是相同类型的逻辑服,也就是拥有相同 tag 的逻辑服。

           1 [同步] 给当前进程所有逻辑服的订阅者发送事件消息
           2 [异步] 给其他进程的订阅者发送事件消息
      
           注意,这里的同步仅指当前进程订阅者的同步,对其他进程中的订阅者无效(处理远程订阅者使用的是异步)。
       
      使用场景
           假设现在有一个发放奖励的邮件逻辑服,我们启动了两个(或者说多个)邮件逻辑服实例来处理业务。
           当我们使用 fireAny 方法发送事件时,只会给其中一个实例发送事件。
       
      参数:
      eventSource - 事件源
    • fireLocal

      default void fireLocal(Object eventSource)
      [异步] 给当前进程所有逻辑服的订阅者发送事件消息
      参数:
      eventSource - 事件源
    • fireLocalSync

      default void fireLocalSync(Object eventSource)
      [同步] 给当前进程所有逻辑服的订阅者发送事件消息
      参数:
      eventSource - 事件源
    • fireMe

      default void fireMe(Object eventSource)
      [异步] 仅给当前 EventBus 的订阅者发送事件消息
      参数:
      eventSource - 事件源
    • fireMeSync

      default void fireMeSync(Object eventSource)
      [同步] 仅给当前 EventBus 的订阅者发送事件消息
      参数:
      eventSource - 事件源
    • createEventBusMessage

      default EventBusMessage createEventBusMessage(Object eventSource)
      创建事件消息
      参数:
      eventSource - 事件源
      返回:
      事件消息
    • broadcastMe

      default void broadcastMe(Object bizData)
      给自己发送消息
           路由则使用当前 action 的路由。
       
      参数:
      bizData - 业务数据
      另请参阅:
    • broadcastMe

      default void broadcastMe(CmdInfo cmdInfo, Object bizData)
      给自己发送消息
      参数:
      cmdInfo - 发送到此路由
      bizData - 业务数据
    • broadcastMe

      default void broadcastMe(ResponseMessage responseMessage)
      给自己发送消息
      参数:
      responseMessage - 消息
    • broadcast

      default void broadcast(CmdInfo cmdInfo, Object bizData)
      全服广播
      参数:
      cmdInfo - 广播到此路由
      bizData - 业务数据
    • broadcast

      default void broadcast(ResponseMessage responseMessage)
      全服广播
      参数:
      responseMessage - 消息
    • broadcast

      default void broadcast(CmdInfo cmdInfo, Object bizData, long userId)
      广播消息给单个用户
      参数:
      cmdInfo - 广播到此路由
      bizData - 业务数据
      userId - userId
    • broadcast

      default void broadcast(ResponseMessage responseMessage, long userId)
      广播消息给单个用户
      参数:
      responseMessage - 消息
      userId - userId
    • broadcast

      default void broadcast(CmdInfo cmdInfo, Object bizData, Collection<Long> userIdList)
      广播消息给指定用户列表
      参数:
      cmdInfo - 广播到此路由
      bizData - 业务数据
      userIdList - 指定用户列表
    • broadcast

      default void broadcast(ResponseMessage responseMessage, Collection<Long> userIdList)
      广播消息给指定用户列表
      参数:
      responseMessage - 消息
      userIdList - 指定用户列表 (如果为 null 或 empty 就不会触发)
    • broadcastOrderMe

      default void broadcastOrderMe(Object bizData)
      顺序 - 给自己发送消息
           路由则使用当前 action 的路由。
       
      参数:
      bizData - 业务数据
      另请参阅:
    • broadcastOrderMe

      default void broadcastOrderMe(CmdInfo cmdInfo, Object bizData)
      顺序 - 给自己发送消息
      参数:
      cmdInfo - 发送到此路由
      bizData - 业务数据
    • broadcastOrderMe

      default void broadcastOrderMe(ResponseMessage responseMessage)
      顺序 - 给自己发送消息
      参数:
      responseMessage - 消息
    • broadcastOrder

      default void broadcastOrder(CmdInfo cmdInfo, Object bizData)
      顺序 - 全服广播
      参数:
      cmdInfo - 广播到此路由
      bizData - 业务数据
    • broadcastOrder

      default void broadcastOrder(ResponseMessage responseMessage)
      顺序 - 全服广播
      参数:
      responseMessage - 消息
    • broadcastOrder

      default void broadcastOrder(CmdInfo cmdInfo, Object bizData, Collection<Long> userIdList)
      顺序 - 广播消息给指定用户列表
      参数:
      cmdInfo - 广播到此路由
      bizData - 业务数据
      userIdList - 指定用户列表
    • broadcastOrder

      default void broadcastOrder(ResponseMessage responseMessage, Collection<Long> userIdList)
      顺序 - 广播消息给指定用户列表
      参数:
      responseMessage - 消息
      userIdList - 指定用户列表 (如果为 null 或 empty 就不会触发)
    • broadcastOrder

      default void broadcastOrder(CmdInfo cmdInfo, Object bizData, long userId)
      顺序 - 广播消息给单个用户
      参数:
      cmdInfo - 广播到此路由
      bizData - 业务数据
      userId - userId
    • broadcastOrder

      default void broadcastOrder(ResponseMessage responseMessage, long userId)
      顺序 - 广播消息给单个用户
      参数:
      responseMessage - 消息
      userId - userId
    • invokeModuleMessage

      default ResponseMessage invokeModuleMessage(CmdInfo cmdInfo)
      根据路由信息来请求其他子服务器(其他游戏逻辑服)的数据
           文档 - 游戏逻辑服之间的交互
      
           同步调用
       
      参数:
      cmdInfo - 路由
      返回:
      ResponseMessage
    • invokeModuleMessage

      default ResponseMessage invokeModuleMessage(CmdInfo cmdInfo, Object data)
      根据路由信息来请求其他子服务器(其他游戏逻辑服)的数据
           文档 - 游戏逻辑服之间的交互
      
           同步调用
       
      参数:
      cmdInfo - cmdInfo
      data - 请求参数
      返回:
      ResponseMessage
    • invokeModuleMessage

      default ResponseMessage invokeModuleMessage(RequestMessage requestMessage)
      根据路由信息来请求其他子服务器(其他游戏逻辑服)的数据
           文档 - 游戏逻辑服之间的交互
      
           同步调用
       
      参数:
      requestMessage - requestMessage
      返回:
      ResponseMessage
    • invokeModuleMessageFuture

      default CompletableFuture<ResponseMessage> invokeModuleMessageFuture(CmdInfo cmdInfo)
      根据路由信息来请求其他子服务器(其他游戏逻辑服)的数据
           文档 - 游戏逻辑服之间的交互
      
           异步调用
       
      参数:
      cmdInfo - 路由
      返回:
      CompletableFuture ResponseMessage
    • invokeModuleMessageFuture

      default CompletableFuture<ResponseMessage> invokeModuleMessageFuture(CmdInfo cmdInfo, Object data)
      根据路由信息来请求其他子服务器(其他游戏逻辑服)的数据
           文档 - 游戏逻辑服之间的交互
      
           异步调用
       
      参数:
      cmdInfo - 路由
      data - 业务数据
      返回:
      CompletableFuture ResponseMessage
    • invokeModuleMessageFuture

      default CompletableFuture<ResponseMessage> invokeModuleMessageFuture(RequestMessage requestMessage)
      根据路由信息来请求其他子服务器(其他游戏逻辑服)的数据
           文档 - 游戏逻辑服之间的交互
      
           异步调用
       
      参数:
      requestMessage - requestMessage
      返回:
      CompletableFuture ResponseMessage
    • invokeModuleMessageAsync

      default void invokeModuleMessageAsync(CmdInfo cmdInfo, Consumer<ResponseMessage> callback)
      根据路由信息来请求其他子服务器(其他游戏逻辑服)的数据
           文档 - 游戏逻辑服之间的交互
      
           异步调用,回调编码风格,具备 traceId
       
      参数:
      cmdInfo - 路由
      callback - 异步回调方法
    • invokeModuleMessageAsync

      default void invokeModuleMessageAsync(CmdInfo cmdInfo, Object data, Consumer<ResponseMessage> callback)
      根据路由信息来请求其他子服务器(其他游戏逻辑服)的数据
           文档 - 游戏逻辑服之间的交互
      
           异步调用,回调编码风格,具备 traceId
       
      参数:
      cmdInfo - 路由
      data - 业务数据
      callback - 异步回调方法
    • invokeModuleMessageAsync

      default void invokeModuleMessageAsync(RequestMessage requestMessage, Consumer<ResponseMessage> callback)
      根据路由信息来请求其他子服务器(其他游戏逻辑服)的数据
           文档 - 游戏逻辑服之间的交互
      
           异步调用,回调编码风格,具备 traceId
       
      参数:
      requestMessage - requestMessage
      callback - 异步回调方法
    • invokeModuleMessageAsync

      default void invokeModuleMessageAsync(RequestMessage requestMessage, Consumer<ResponseMessage> callback, Executor callbackExecutor)
      根据路由信息来请求其他子服务器(其他游戏逻辑服)的数据
           文档 - 游戏逻辑服之间的交互
      
           异步调用,回调编码风格,具备 traceId
       
      参数:
      requestMessage - requestMessage
      callback - 异步回调方法
      callbackExecutor - 处理回调的 Executor
    • invokeModuleVoidMessage

      default void invokeModuleVoidMessage(CmdInfo cmdInfo)
      根据路由信息来请求其他子服务器(其他逻辑服)的方法,并且不需要返回值
           异步无阻塞的方法,因为没有返回值;
           文档 - 游戏逻辑服与单个游戏逻辑服通信请求 - 无返回值(可跨进程)
           文档 - 单个逻辑服与单个逻辑服通信请求 - 无返回值(可跨进程)
       
      example
      
           // 内部模块通讯上下文,内部模块指的是游戏逻辑服
           InvokeModuleContext invokeModuleContext = ...
           // 请求房间逻辑服来创建房间,并且不需要返回值
           // 路由、业务参数
           invokeModuleContext.invokeModuleVoidMessage(cmdInfo);
       
       
      参数:
      cmdInfo - 路由
    • invokeModuleVoidMessage

      default void invokeModuleVoidMessage(CmdInfo cmdInfo, Object data)
      根据路由信息来请求其他子服务器(其他逻辑服)的方法,并且不需要返回值
           异步无阻塞的方法,因为没有返回值;
           文档 - 游戏逻辑服与单个游戏逻辑服通信请求 - 无返回值(可跨进程)
           文档 - 单个逻辑服与单个逻辑服通信请求 - 无返回值(可跨进程)
       
      example
      
           // 内部模块通讯上下文,内部模块指的是游戏逻辑服
           InvokeModuleContext invokeModuleContext = ...
           // 请求房间逻辑服来创建房间,并且不需要返回值
           // 路由、业务参数
           invokeModuleContext.invokeModuleVoidMessage(cmdInfo, data);
       
       
      参数:
      cmdInfo - 路由
      data - 业务数据
    • invokeModuleVoidMessage

      default void invokeModuleVoidMessage(RequestMessage requestMessage)
      根据路由信息来请求其他子服务器(其他逻辑服)的方法,并且不需要返回值
           异步无阻塞的方法,因为没有返回值;
           文档 - 游戏逻辑服与单个游戏逻辑服通信请求 - 无返回值(可跨进程)
           文档 - 单个逻辑服与单个逻辑服通信请求 - 无返回值(可跨进程)
       
      example
      
           // 内部模块通讯上下文,内部模块指的是游戏逻辑服
           InvokeModuleContext invokeModuleContext = ...
           // 请求房间逻辑服来创建房间,并且不需要返回值
           // 路由、业务参数
           invokeModuleContext.invokeModuleVoidMessage(requestMessage);
       
       
      参数:
      requestMessage - requestMessage
    • invokeModuleCollectMessage

      default ResponseCollectMessage invokeModuleCollectMessage(CmdInfo cmdInfo)
      模块之间的访问,访问【同类型】的多个逻辑服
           模块A 访问 模块B 的某个方法,因为只有模块B持有这些数据,这里的模块指的是游戏逻辑服。
           假设启动了多个模块B,分别是:模块B-1、模块B-2、模块B-3、模块B-4 等。
           框架支持访问【同类型】的多个逻辑服,并把多个相同逻辑服结果收集到一起。
      
           文档 - 请求同类型多个逻辑服通信结果
      
           同步调用
       
      参数:
      cmdInfo - 路由
      返回:
      ResponseCollectMessage
    • invokeModuleCollectMessage

      default ResponseCollectMessage invokeModuleCollectMessage(CmdInfo cmdInfo, Object data)
      模块之间的访问,访问【同类型】的多个逻辑服
           模块A 访问 模块B 的某个方法,因为只有模块B持有这些数据,这里的模块指的是游戏逻辑服。
           假设启动了多个模块B,分别是:模块B-1、模块B-2、模块B-3、模块B-4 等。
           框架支持访问【同类型】的多个逻辑服,并把多个相同逻辑服结果收集到一起。
      
           文档 - 请求同类型多个逻辑服通信结果
      
           同步调用
       
      参数:
      cmdInfo - 路由信息
      data - 业务数据
      返回:
      ResponseCollectMessage
    • invokeModuleCollectMessage

      default ResponseCollectMessage invokeModuleCollectMessage(RequestMessage requestMessage)
      模块之间的访问,访问【同类型】的多个逻辑服
           模块A 访问 模块B 的某个方法,因为只有模块B持有这些数据,这里的模块指的是游戏逻辑服。
           假设启动了多个模块B,分别是:模块B-1、模块B-2、模块B-3、模块B-4 等。
           框架支持访问【同类型】的多个逻辑服,并把多个相同逻辑服结果收集到一起。
      
           文档 - 请求同类型多个逻辑服通信结果
      
           同步调用
       
      参数:
      requestMessage - requestMessage
      返回:
      ResponseCollectMessage
    • invokeModuleCollectMessageFuture

      default CompletableFuture<ResponseCollectMessage> invokeModuleCollectMessageFuture(CmdInfo cmdInfo)
      模块之间的访问,访问【同类型】的多个逻辑服
           模块A 访问 模块B 的某个方法,因为只有模块B持有这些数据,这里的模块指的是游戏逻辑服。
           假设启动了多个模块B,分别是:模块B-1、模块B-2、模块B-3、模块B-4 等。
           框架支持访问【同类型】的多个逻辑服,并把多个相同逻辑服结果收集到一起。
      
           文档 - 请求同类型多个逻辑服通信结果
      
           异步调用
       
      参数:
      cmdInfo - 路由
      返回:
      CompletableFuture ResponseCollectMessage
    • invokeModuleCollectMessageFuture

      default CompletableFuture<ResponseCollectMessage> invokeModuleCollectMessageFuture(CmdInfo cmdInfo, Object data)
      模块之间的访问,访问【同类型】的多个逻辑服
           模块A 访问 模块B 的某个方法,因为只有模块B持有这些数据,这里的模块指的是游戏逻辑服。
           假设启动了多个模块B,分别是:模块B-1、模块B-2、模块B-3、模块B-4 等。
           框架支持访问【同类型】的多个逻辑服,并把多个相同逻辑服结果收集到一起。
      
           文档 - 请求同类型多个逻辑服通信结果
      
           异步调用
       
      参数:
      cmdInfo - 路由
      data - 业务数据
      返回:
      CompletableFuture ResponseCollectMessage
    • invokeModuleCollectMessageFuture

      default CompletableFuture<ResponseCollectMessage> invokeModuleCollectMessageFuture(RequestMessage requestMessage)
      模块之间的访问,访问【同类型】的多个逻辑服
           模块A 访问 模块B 的某个方法,因为只有模块B持有这些数据,这里的模块指的是游戏逻辑服。
           假设启动了多个模块B,分别是:模块B-1、模块B-2、模块B-3、模块B-4 等。
           框架支持访问【同类型】的多个逻辑服,并把多个相同逻辑服结果收集到一起。
      
           文档 - 请求同类型多个逻辑服通信结果
      
           异步调用
       
      参数:
      requestMessage - requestMessage
      返回:
      CompletableFuture ResponseCollectMessage
    • invokeModuleCollectMessageAsync

      default void invokeModuleCollectMessageAsync(CmdInfo cmdInfo, Consumer<ResponseCollectMessage> callback)
      模块之间的访问,访问【同类型】的多个逻辑服
           模块A 访问 模块B 的某个方法,因为只有模块B持有这些数据,这里的模块指的是游戏逻辑服。
           假设启动了多个模块B,分别是:模块B-1、模块B-2、模块B-3、模块B-4 等。
           框架支持访问【同类型】的多个逻辑服,并把多个相同逻辑服结果收集到一起。
      
           文档 - 请求同类型多个逻辑服通信结果
      
           异步调用,回调编码风格,具备 traceId
       
      参数:
      cmdInfo - 路由
      callback - 异步回调方法
    • invokeModuleCollectMessageAsync

      default void invokeModuleCollectMessageAsync(CmdInfo cmdInfo, Object data, Consumer<ResponseCollectMessage> callback)
      模块之间的访问,访问【同类型】的多个逻辑服
           模块A 访问 模块B 的某个方法,因为只有模块B持有这些数据,这里的模块指的是游戏逻辑服。
           假设启动了多个模块B,分别是:模块B-1、模块B-2、模块B-3、模块B-4 等。
           框架支持访问【同类型】的多个逻辑服,并把多个相同逻辑服结果收集到一起。
      
           文档 - 请求同类型多个逻辑服通信结果
      
           异步调用,回调编码风格,具备 traceId
       
      参数:
      cmdInfo - 路由
      data - 业务数据
      callback - 异步回调方法
    • invokeModuleCollectMessageAsync

      default void invokeModuleCollectMessageAsync(RequestMessage requestMessage, Consumer<ResponseCollectMessage> callback)
      模块之间的访问,访问【同类型】的多个逻辑服
           模块A 访问 模块B 的某个方法,因为只有模块B持有这些数据,这里的模块指的是游戏逻辑服。
           假设启动了多个模块B,分别是:模块B-1、模块B-2、模块B-3、模块B-4 等。
           框架支持访问【同类型】的多个逻辑服,并把多个相同逻辑服结果收集到一起。
      
           文档 - 请求同类型多个逻辑服通信结果
      
           异步调用,回调编码风格,具备 traceId
       
      参数:
      requestMessage - requestMessage
      callback - 异步回调方法
    • invokeModuleCollectMessageAsync

      default void invokeModuleCollectMessageAsync(RequestMessage requestMessage, Consumer<ResponseCollectMessage> callback, Executor callbackExecutor)
      模块之间的访问,访问【同类型】的多个逻辑服
           模块A 访问 模块B 的某个方法,因为只有模块B持有这些数据,这里的模块指的是游戏逻辑服。
           假设启动了多个模块B,分别是:模块B-1、模块B-2、模块B-3、模块B-4 等。
           框架支持访问【同类型】的多个逻辑服,并把多个相同逻辑服结果收集到一起。
      
           文档 - 请求同类型多个逻辑服通信结果
      
           异步调用,回调编码风格,具备 traceId
       
      参数:
      requestMessage - requestMessage
      callback - 异步回调方法
      callbackExecutor - 处理回调的 Executor