类 BrokerClientItem
java.lang.Object
com.iohao.game.bolt.broker.core.client.BrokerClientItem
- 所有已实现的接口:
BroadcastContext
,BroadcastOrderContext
,CommunicationAggregationContext
,InvokeExternalModuleContext
,InvokeModuleContext
,ProcessorContext
,AwareInject
public class BrokerClientItem
extends Object
implements CommunicationAggregationContext, AwareInject
客户连接项
与游戏网关是 1:1 的关系
- 作者:
- 渔民小镇
- 日期:
- 2022-05-14
-
嵌套类概要
-
构造器概要
-
方法概要
修饰符和类型方法说明void
附加能力void
broadcast
(ResponseMessage responseMessage) 全服广播void
broadcast
(ResponseMessage responseMessage, long userId) 广播消息给单个用户void
broadcast
(ResponseMessage responseMessage, Collection<Long> userIdList) 广播消息给指定用户列表void
broadcastOrder
(ResponseMessage responseMessage) 全服广播void
broadcastOrder
(ResponseMessage responseMessage, long userId) 广播消息给单个用户void
broadcastOrder
(ResponseMessage responseMessage, Collection<Long> userIdList) 广播消息给指定用户列表invokeExternalModuleCollectMessage
(int bizCode, Serializable data) 【游戏逻辑服】访问多个【游戏对外服】【游戏逻辑服】访问多个【游戏对外服】invokeModuleCollectMessage
(RequestMessage requestMessage) 模块之间的访问,访问【同类型】的多个逻辑服invokeModuleMessage
(RequestMessage requestMessage) 根据路由信息来请求其他子服务器(其他逻辑服)的数据void
invokeModuleVoidMessage
(RequestMessage requestMessage) 根据路由信息来请求其他子服务器(其他逻辑服)的方法,并且不需要返回值void
invokeOneway
(Object message) oneway 异步调用invokeSync
(Object request) invokeSync
(Object request, int timeoutMillis) void
void
注册到网关 broker 客户端服务器注册到网关服void
startup()
从类继承的方法 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
从接口继承的方法 com.iohao.game.action.skeleton.core.commumication.BroadcastContext
broadcast, broadcast, broadcast
从接口继承的方法 com.iohao.game.action.skeleton.core.commumication.BroadcastOrderContext
broadcastOrder, broadcastOrder, broadcastOrder
从接口继承的方法 com.iohao.game.action.skeleton.core.commumication.InvokeExternalModuleContext
invokeExternalModuleCollectMessage
从接口继承的方法 com.iohao.game.action.skeleton.core.commumication.InvokeModuleContext
invokeModuleCollectMessage, invokeModuleCollectMessage, invokeModuleMessage, invokeModuleMessage, invokeModuleMessageData, invokeModuleMessageData, invokeModuleMessageData, invokeModuleVoidMessage, invokeModuleVoidMessage
-
构造器详细资料
-
BrokerClientItem
-
-
方法详细资料
-
invokeSync
public Object invokeSync(Object request, int timeoutMillis) throws com.alipay.remoting.exception.RemotingException, InterruptedException - 抛出:
com.alipay.remoting.exception.RemotingException
InterruptedException
-
invokeSync
public Object invokeSync(Object request) throws com.alipay.remoting.exception.RemotingException, InterruptedException - 抛出:
com.alipay.remoting.exception.RemotingException
InterruptedException
-
oneway
- 抛出:
com.alipay.remoting.exception.RemotingException
-
broadcast
从接口复制的说明:BroadcastContext
广播消息给指定用户列表- 指定者:
broadcast
在接口中BroadcastContext
- 参数:
responseMessage
- 消息userIdList
- 指定用户列表 (如果为 null 或 empty 就不会触发)
-
broadcast
从接口复制的说明:BroadcastContext
广播消息给单个用户- 指定者:
broadcast
在接口中BroadcastContext
- 参数:
responseMessage
- 消息userId
- userId
-
broadcast
从接口复制的说明:BroadcastContext
全服广播- 指定者:
broadcast
在接口中BroadcastContext
- 参数:
responseMessage
- 消息
-
broadcastOrder
从接口复制的说明:BroadcastOrderContext
广播消息给指定用户列表- 指定者:
broadcastOrder
在接口中BroadcastOrderContext
- 参数:
responseMessage
- 消息userIdList
- 指定用户列表 (如果为 null 或 empty 就不会触发)
-
broadcastOrder
从接口复制的说明:BroadcastOrderContext
广播消息给单个用户- 指定者:
broadcastOrder
在接口中BroadcastOrderContext
- 参数:
responseMessage
- 消息userId
- userId
-
broadcastOrder
从接口复制的说明:BroadcastOrderContext
全服广播- 指定者:
broadcastOrder
在接口中BroadcastOrderContext
- 参数:
responseMessage
- 消息
-
invokeModuleMessage
从接口复制的说明:InvokeModuleContext
根据路由信息来请求其他子服务器(其他逻辑服)的数据相关文档 游戏逻辑服与单个游戏逻辑服通信请求 - 有返回值(可跨进程) 游戏逻辑服之间的交互 异步小技巧
examplepublic void count() { RequestMessage request = ... // 模块通讯上下文 InvokeModuleContext invokeModuleContext = ... // 根据路由信息来请求其他子服务器(其他逻辑服)的数据 ResponseMessage responseMessage = invokeModuleContext.invokeModuleMessage(request); // 得到逻辑服返回的业务数据 YourMsg msg = responseMessage.getData(YourMsg.class); log.info("message : {} ", msg); }
- 指定者:
invokeModuleMessage
在接口中InvokeModuleContext
- 参数:
requestMessage
- requestMessage- 返回:
- ResponseMessage
-
invokeModuleVoidMessage
从接口复制的说明:InvokeModuleContext
根据路由信息来请求其他子服务器(其他逻辑服)的方法,并且不需要返回值异步无阻塞的方法,因为没有返回值; 游戏逻辑服与单个游戏逻辑服通信请求 - 无返回值(可跨进程) 单个逻辑服与单个逻辑服通信请求 - 无返回值(可跨进程)
example// 内部模块通讯上下文,内部模块指的是游戏逻辑服 InvokeModuleContext invokeModuleContext = ... // 请求房间逻辑服来创建房间,并且不需要返回值 // 路由、业务参数 invokeModuleContext.invokeModuleVoidMessage(requestMessage);
- 指定者:
invokeModuleVoidMessage
在接口中InvokeModuleContext
- 参数:
requestMessage
- requestMessage
-
invokeModuleCollectMessage
从接口复制的说明:InvokeModuleContext
模块之间的访问,访问【同类型】的多个逻辑服模块A 访问 模块B 的某个方法,因为只有模块B持有这些数据,这里的模块指的是逻辑服。 假设启动了多个模块B,分别是:模块B-1、模块B-2、模块B-3、模块B-4 等。 框架支持访问【同类型】的多个逻辑服,并把多个相同逻辑服结果收集到一起。 具体的意思可以参考文档中的说明 游戏逻辑服与同类型多个游戏逻辑服通信请求(可跨进程) 请求同类型多个逻辑服通信结果 异步小技巧
examplepublic void count() { RequestMessage request = ... // 模块通讯上下文 InvokeModuleContext invokeModuleContext = ... // 根据路由信息来请求其他【同类型】的多个子服务器(其他逻辑服)数据 ResponseCollectMessage responseCollectMessage = invokeModuleContext.invokeModuleCollectMessage(request); // 每个逻辑服返回的数据集合 List<ResponseCollectItemMessage> messageList = responseCollectMessage.getMessageList(); for (ResponseCollectItemMessage responseCollectItemMessage : messageList) { ResponseMessage responseMessage = responseCollectItemMessage.getResponseMessage(); // 得到逻辑服返回的业务数据 YourMsg msg = responseMessage.getData(YourMsg.class); log.info("message : {} ", msg); } }
- 指定者:
invokeModuleCollectMessage
在接口中InvokeModuleContext
- 参数:
requestMessage
- requestMessage- 返回:
- ResponseAggregationMessage
-
invokeExternalModuleCollectMessage
public ResponseCollectExternalMessage invokeExternalModuleCollectMessage(int bizCode, Serializable data) 从接口复制的说明:InvokeExternalModuleContext
【游戏逻辑服】访问多个【游戏对外服】有些数据只存在于游戏对外服,但由于游戏对外服可能会有多个,特别是在分布式场景下。 所以这里发起请求时,会调用多个游戏对外服来处理这个请求。
- 指定者:
invokeExternalModuleCollectMessage
在接口中InvokeExternalModuleContext
- 参数:
bizCode
- 业务码data
- 业务参数- 返回:
- ResponseCollectExternalMessage 一定不为 null
-
invokeExternalModuleCollectMessage
public ResponseCollectExternalMessage invokeExternalModuleCollectMessage(RequestCollectExternalMessage request) 从接口复制的说明:InvokeExternalModuleContext
【游戏逻辑服】访问多个【游戏对外服】有些数据只存在于游戏对外服,但由于游戏对外服可能会有多个,特别是在分布式场景下。 所以这里发起请求时,会调用多个游戏对外服来处理这个请求。
- 指定者:
invokeExternalModuleCollectMessage
在接口中InvokeExternalModuleContext
- 参数:
request
- 请求- 返回:
- ResponseCollectExternalMessage 一定不为 null
-
invokeOneway
从接口复制的说明:ProcessorContext
oneway 异步调用- 指定者:
invokeOneway
在接口中ProcessorContext
- 参数:
message
- message
-
aware
从接口复制的说明:AwareInject
附加能力- 指定者:
aware
在接口中AwareInject
- 参数:
obj
- o
-
registerToBroker
public void registerToBroker()注册到网关 broker 客户端服务器注册到网关服 -
startup
public void startup()
-