接口 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 RangeBroadcaster
addUserId
(long userId) 接收广播的用户default RangeBroadcaster
addUserId
(Collection<Long> userIds) 接收广播的用户default RangeBroadcaster
addUserId
(Collection<Long> userIds, long excludeUserId) 添加接收广播的用户,顺带排除一个不需要接收广播的用户void
execute()
响应消息到远程端(用户、玩家)接收广播的用户static RangeBroadcaster
of
(CommunicationAggregationContext aggregationContext) 创建一个默认的 RangeBroadcaster 对象(框架内置)static RangeBroadcaster
of
(FlowContext flowContext) 创建一个默认的 RangeBroadcaster 对象(框架内置)default RangeBroadcaster
removeUserId
(long excludeUserId) 排除 userIddefault RangeBroadcaster
setResponseMessage
(CmdInfo cmdInfo) 设置响应的广播数据default RangeBroadcaster
setResponseMessage
(CmdInfo cmdInfo, boolean bizData) 设置响应的广播数据。default RangeBroadcaster
setResponseMessage
(CmdInfo cmdInfo, int bizData) 设置响应的广播数据。default RangeBroadcaster
setResponseMessage
(CmdInfo cmdInfo, long bizData) 设置响应的广播数据。default RangeBroadcaster
setResponseMessage
(CmdInfo cmdInfo, Object bizData) 设置响应的广播数据default RangeBroadcaster
setResponseMessage
(CmdInfo cmdInfo, String bizData) 设置响应的广播数据。setResponseMessage
(ResponseMessage responseMessage) 设置响应的广播数据 ResponseMessagedefault RangeBroadcaster
setResponseMessageBoolList
(CmdInfo cmdInfo, List<Boolean> bizData) 设置响应的广播数据。default RangeBroadcaster
setResponseMessageIntList
(CmdInfo cmdInfo, List<Integer> bizData) 设置响应的广播数据。default RangeBroadcaster
setResponseMessageList
(CmdInfo cmdInfo, Collection<?> bizData) 设置响应的广播数据。default RangeBroadcaster
setResponseMessageLongList
(CmdInfo cmdInfo, List<Long> bizData) 设置响应的广播数据。default RangeBroadcaster
setResponseMessageStringList
(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
-