跳到主要内容

request/response

介绍

我们将介绍单次请求处理的通讯,单次请求处理有两种,分别是:

  • request/response,请求/响应
  • request/void,请求/无响应

request/response,请求/响应

request/response,请求/响应是在游戏开发中常见的通讯模型,客户端出请求后,服务器返回该请求的响应。


使用场景举例

装备的升级、人物的升级、玩家的移动、抽奖、游戏前端到某一个场景时需要从游戏服务端获取一些对应的场景配置等。

在写 action 时,方法有返回值的就表示 request/response,请求/响应


Example

@ActionController(1)
public final class MyAction {
@ActionMethod(1)
public String hello(String name) {
return "hello, " + name;
}
}

request/void,请求/无响应

request/void,请求/无响应,客户端出请求后,服务器不会返回任何响应给请求端。


使用场景举例,如数据采集的场景、打点采集、日志传输、metrics 上报等。


Example

在写 action 时,将方法返回值声名为 void

@ActionController(1)
public final class MyAction {
@ActionMethod(2)
public void say(String name) {
... your biz
}

}

request/broadcast,请求/广播响应

通讯模型之间是可以组合使用的,下面示例是 request/voidbroadcast 的结合使用。

@ActionController(1)
public final class MyAction {
@ActionMethod(2)
public void say(FlowContext flowContext) {
var data = StringValue.of("my broadcast data");
var cmdInfo = CmdInfo.of(2, 2);

flowContext.broadcastMe(cmdInfo, data);
}
}
注意

flowContext.broadcastMe 方法需要登录后才能使用。