接口 RangeBroadcaster

所有已知实现类:
RangeBroadcast

public interface RangeBroadcaster
范围内的广播接口,这个范围指的是,指定某些用户进行广播。
     在执行广播前,开发者可以自定义业务逻辑,如
     - 添加一些需要广播的用户
     - 删除一些不需要接收广播的用户
 
for example

         // example - 1
         RangeBroadcaster.of(flowContext)
                 // 需要广播的数据
                 .setResponseMessage(responseMessage)
                 // 添加需要接收广播的用户
                 .addUserId(1)
                 .addUserId(2)
                 .addUserId(List.of(3L, 4L, 5L))
                 // 排除一些用户,被排除的用户将不会接收到广播
                 .removeUserId(1)
                 .removeUserId(4)
                 // 执行广播,只有 2、3、5 可以接收到广播
                 .execute();

         // example - 2
         RangeBroadcaster.of(flowContext)
                 // 需要广播的数据(路由、业务数据)
                 .setResponseMessage(cmdInfo, StringValue.of("hello"))
                 // 添加需要接收广播的用户
                 .addUserId(1)
                 // 执行广播
                 .execute();

         // example - 3
         BrokerClientContext brokerClient = ...;
         var aggregationContext = brokerClient.getCommunicationAggregationContext();
         RangeBroadcaster.of(aggregationContext)
                  // 需要广播的数据(路由、业务数据)
                 .setResponseMessage(cmdInfo, StringValue.of("hello"))
                 // 添加需要接收广播的用户
                 .addUserId(1)
                 // 执行广播
                 .execute();
 
 
此外,还支持协议碎片及 List。关于协议碎片可阅读 协议碎片 - 文档 for example

     // ------------ object ------------
     // 广播 object
     DemoBroadcastMessage message = new DemoBroadcastMessage();
     message.msg = "helloBroadcast --- 1";
     RangeBroadcaster.of(flowContext)
             .setResponseMessage(cmdInfo, message);

     // 广播 object list
     List<DemoBroadcastMessage> messageList = List.of(message);
     RangeBroadcaster.of(flowContext)
             .setResponseMessageList(cmdInfo, messageList);

     // ------------ int ------------
     // 广播 int
     int intValue = 1;
     RangeBroadcaster.of(flowContext)
             .setResponseMessage(cmdInfo, intValue);

     // 广播 int list
     List<Integer> intValueList = List.of(1, 2);
     RangeBroadcaster.of(flowContext)
             .setResponseMessageIntList(cmdInfo, intValueList);

     // ------------ long ------------
     // 广播 long
     long longValue = 1L;
     RangeBroadcaster.of(flowContext)
             .setResponseMessage(cmdInfo, longValue);

     // 广播 long list
     List<Long> longValueList = List.of(1L, 2L);
     RangeBroadcaster.of(flowContext)
             .setResponseMessageLongList(cmdInfo, longValueList);

     // ------------ String ------------
     // 广播 String
     String stringValue = "1";
     RangeBroadcaster.of(flowContext)
             .setResponseMessage(cmdInfo, stringValue);

     // 广播 String list
     List<String> stringValueList = List.of("1L", "2L");
     RangeBroadcaster.of(flowContext)
             .setResponseMessageStringList(cmdInfo, stringValueList);

     // ------------ boolean ------------
     // 广播 boolean
     boolean boolValue = true;
     RangeBroadcaster.of(flowContext)
             .setResponseMessage(cmdInfo, boolValue);

     // 广播 boolean list
     List<Boolean> boolValueList = List.of(true, false);
     RangeBroadcaster.of(flowContext)
             .setResponseMessageBoolList(cmdInfo, boolValueList);
 
 }
 
从以下版本开始:
21.9
作者:
渔民小镇
另请参阅:
日期:
2024-06-02
  • 方法详细资料

    • listUserId

      Set<Long> listUserId()
      接收广播的用户
      返回:
      接收广播的用户
    • setResponseMessage

      RangeBroadcaster setResponseMessage(ResponseMessage responseMessage)
      设置响应的广播数据 ResponseMessage
      参数:
      responseMessage - ResponseMessage
      返回:
      this
    • execute

      void execute()
      响应消息到远程端(用户、玩家)
    • of

      static RangeBroadcaster of(CommunicationAggregationContext aggregationContext)
      创建一个默认的 RangeBroadcaster 对象(框架内置)
      参数:
      aggregationContext - 框架网络通讯聚合接口
      返回:
      RangeBroadcaster
    • of

      static RangeBroadcaster of(FlowContext flowContext)
      创建一个默认的 RangeBroadcaster 对象(框架内置)
      参数:
      flowContext - FlowContext
      返回:
      RangeBroadcaster
    • addUserId

      default RangeBroadcaster addUserId(Collection<Long> userIds)
      接收广播的用户
      参数:
      userIds - userIds
      返回:
      this
    • addUserId

      default RangeBroadcaster addUserId(long userId)
      接收广播的用户
      参数:
      userId - userId
      返回:
      this
    • addUserId

      default RangeBroadcaster addUserId(Collection<Long> userIds, long excludeUserId)
      添加接收广播的用户,顺带排除一个不需要接收广播的用户
      参数:
      userIds - 接收广播的 userIds
      excludeUserId - 需要排除的 userId
      返回:
      this
    • removeUserId

      default RangeBroadcaster removeUserId(long excludeUserId)
      排除 userId
      参数:
      excludeUserId - 需要排除的 userId
      返回:
      this
    • setResponseMessage

      default RangeBroadcaster setResponseMessage(CmdInfo cmdInfo)
      设置响应的广播数据
      参数:
      cmdInfo - 路由
      返回:
      this
    • setResponseMessage

      default RangeBroadcaster setResponseMessage(CmdInfo cmdInfo, Object bizData)
      设置响应的广播数据
      参数:
      cmdInfo - 路由
      bizData - 业务数据
      返回:
      this
    • setResponseMessageList

      default RangeBroadcaster setResponseMessageList(CmdInfo cmdInfo, Collection<?> bizData)
      设置响应的广播数据。业务数据会使用 ByteValueList 来包装(.协议碎片)。
      参数:
      cmdInfo - 路由
      bizData - 业务数据
      返回:
      this
    • setResponseMessage

      default RangeBroadcaster setResponseMessage(CmdInfo cmdInfo, int bizData)
      设置响应的广播数据。业务数据会使用 IntValue 来包装(.协议碎片)。
      参数:
      cmdInfo - 路由
      bizData - 业务数据
      返回:
      this
    • setResponseMessageIntList

      default RangeBroadcaster setResponseMessageIntList(CmdInfo cmdInfo, List<Integer> bizData)
      设置响应的广播数据。业务数据会使用 IntValueList 来包装(.协议碎片)。
      参数:
      cmdInfo - 路由
      bizData - 业务数据
      返回:
      this
    • setResponseMessage

      default RangeBroadcaster setResponseMessage(CmdInfo cmdInfo, long bizData)
      设置响应的广播数据。业务数据会使用 LongValue 来包装(.协议碎片)。
      参数:
      cmdInfo - 路由
      bizData - 业务数据
      返回:
      this
    • setResponseMessageLongList

      default RangeBroadcaster setResponseMessageLongList(CmdInfo cmdInfo, List<Long> bizData)
      设置响应的广播数据。业务数据会使用 LongValueList 来包装(.协议碎片)。
      参数:
      cmdInfo - 路由
      bizData - 业务数据
      返回:
      this
    • setResponseMessage

      default RangeBroadcaster setResponseMessage(CmdInfo cmdInfo, String bizData)
      设置响应的广播数据。业务数据会使用 StringValue 来包装(.协议碎片)。
      参数:
      cmdInfo - 路由
      bizData - 业务数据
      返回:
      this
    • setResponseMessageStringList

      default RangeBroadcaster setResponseMessageStringList(CmdInfo cmdInfo, List<String> bizData)
      设置响应的广播数据。业务数据会使用 StringValueList 来包装(.协议碎片)。
      参数:
      cmdInfo - 路由
      bizData - 业务数据
      返回:
      this
    • setResponseMessage

      default RangeBroadcaster setResponseMessage(CmdInfo cmdInfo, boolean bizData)
      设置响应的广播数据。业务数据会使用 BoolValue 来包装(.协议碎片)。
      参数:
      cmdInfo - 路由
      bizData - 业务数据
      返回:
      this
    • setResponseMessageBoolList

      default RangeBroadcaster setResponseMessageBoolList(CmdInfo cmdInfo, List<Boolean> bizData)
      设置响应的广播数据。业务数据会使用 BoolValueList 来包装(.协议碎片)。
      参数:
      cmdInfo - 路由
      bizData - 业务数据
      返回:
      this