接口 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
-
方法概要
修饰符和类型方法说明default RangeBroadcasteraddUserId(long userId) 接收广播的用户default RangeBroadcasteraddUserId(Collection<Long> userIds) 接收广播的用户default RangeBroadcasteraddUserId(Collection<Long> userIds, long excludeUserId) 添加接收广播的用户,顺带排除一个不需要接收广播的用户voidexecute()响应消息到远程端(用户、玩家)接收广播的用户static RangeBroadcasterof(CommunicationAggregationContext aggregationContext) 创建一个默认的 RangeBroadcaster 对象(框架内置)static RangeBroadcasterof(FlowContext flowContext) 创建一个默认的 RangeBroadcaster 对象(框架内置)default RangeBroadcasterremoveUserId(long excludeUserId) 排除 userIddefault RangeBroadcastersetResponseMessage(CmdInfo cmdInfo) 设置响应的广播数据default RangeBroadcastersetResponseMessage(CmdInfo cmdInfo, boolean bizData) 设置响应的广播数据。default RangeBroadcastersetResponseMessage(CmdInfo cmdInfo, int bizData) 设置响应的广播数据。default RangeBroadcastersetResponseMessage(CmdInfo cmdInfo, long bizData) 设置响应的广播数据。default RangeBroadcastersetResponseMessage(CmdInfo cmdInfo, Object bizData) 设置响应的广播数据default RangeBroadcastersetResponseMessage(CmdInfo cmdInfo, String bizData) 设置响应的广播数据。setResponseMessage(ResponseMessage responseMessage) 设置响应的广播数据 ResponseMessagedefault RangeBroadcastersetResponseMessageBoolList(CmdInfo cmdInfo, List<Boolean> bizData) 设置响应的广播数据。default RangeBroadcastersetResponseMessageIntList(CmdInfo cmdInfo, List<Integer> bizData) 设置响应的广播数据。default RangeBroadcastersetResponseMessageList(CmdInfo cmdInfo, Collection<?> bizData) 设置响应的广播数据。default RangeBroadcastersetResponseMessageLongList(CmdInfo cmdInfo, List<Long> bizData) 设置响应的广播数据。default RangeBroadcastersetResponseMessageStringList(CmdInfo cmdInfo, List<String> bizData) 设置响应的广播数据。
-
方法详细资料
-
listUserId
接收广播的用户- 返回:
- 接收广播的用户
-
setResponseMessage
设置响应的广播数据 ResponseMessage- 参数:
responseMessage- ResponseMessage- 返回:
- this
-
execute
void execute()响应消息到远程端(用户、玩家) -
of
创建一个默认的 RangeBroadcaster 对象(框架内置)- 参数:
aggregationContext- 框架网络通讯聚合接口- 返回:
- RangeBroadcaster
-
of
创建一个默认的 RangeBroadcaster 对象(框架内置)- 参数:
flowContext- FlowContext- 返回:
- RangeBroadcaster
-
addUserId
接收广播的用户- 参数:
userIds- userIds- 返回:
- this
-
addUserId
接收广播的用户- 参数:
userId- userId- 返回:
- this
-
addUserId
添加接收广播的用户,顺带排除一个不需要接收广播的用户- 参数:
userIds- 接收广播的 userIdsexcludeUserId- 需要排除的 userId- 返回:
- this
-
removeUserId
排除 userId- 参数:
excludeUserId- 需要排除的 userId- 返回:
- this
-
setResponseMessage
设置响应的广播数据- 参数:
cmdInfo- 路由- 返回:
- this
-
setResponseMessage
设置响应的广播数据- 参数:
cmdInfo- 路由bizData- 业务数据- 返回:
- this
-
setResponseMessageList
设置响应的广播数据。业务数据会使用ByteValueList来包装(.协议碎片)。- 参数:
cmdInfo- 路由bizData- 业务数据- 返回:
- this
-
setResponseMessage
- 参数:
cmdInfo- 路由bizData- 业务数据- 返回:
- this
-
setResponseMessageIntList
设置响应的广播数据。业务数据会使用IntValueList来包装(.协议碎片)。- 参数:
cmdInfo- 路由bizData- 业务数据- 返回:
- this
-
setResponseMessage
- 参数:
cmdInfo- 路由bizData- 业务数据- 返回:
- this
-
setResponseMessageLongList
设置响应的广播数据。业务数据会使用LongValueList来包装(.协议碎片)。- 参数:
cmdInfo- 路由bizData- 业务数据- 返回:
- this
-
setResponseMessage
设置响应的广播数据。业务数据会使用StringValue来包装(.协议碎片)。- 参数:
cmdInfo- 路由bizData- 业务数据- 返回:
- this
-
setResponseMessageStringList
设置响应的广播数据。业务数据会使用StringValueList来包装(.协议碎片)。- 参数:
cmdInfo- 路由bizData- 业务数据- 返回:
- this
-
setResponseMessage
- 参数:
cmdInfo- 路由bizData- 业务数据- 返回:
- this
-
setResponseMessageBoolList
设置响应的广播数据。业务数据会使用BoolValueList来包装(.协议碎片)。- 参数:
cmdInfo- 路由bizData- 业务数据- 返回:
- this
-