From 35717edc7491a88a5c98799cbaa518335a67f676 Mon Sep 17 00:00:00 2001 From: Redkale <22250530@qq.com> Date: Mon, 10 Oct 2016 19:20:38 +0800 Subject: [PATCH] --- net.html | 2 +- service.html | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/net.html b/net.html index 26b59bd0d..1bc9ae057 100644 --- a/net.html +++ b/net.html @@ -656,7 +656,7 @@
- 包体数据结构为 ([参数序号][参数BSON值])* N + [0][结果对象BSON]。 其中参数序号从1开始,只有当Service的方法存在@DynCall回调才会有参数BSON值,序号为0表示为结果对象的BSON值。若方法为void返回类型,则不存在结果对象BSON值。 + 包体数据结构为 ([参数序号][参数BSON值])* N + [0][结果对象BSON]。 其中参数序号从1开始,只有当Service的方法存在@RpcCall回调才会有参数BSON值,序号为0表示为结果对象的BSON值。若方法为void返回类型,则不存在结果对象BSON值。
由以上代码可以看出来,远程模式Service是根据本地模式Service临时类动态生成的。远程类执行方法时通过SNCP协议将参数序列化并带上当前方法信息传输到远程服务器上,执行完后将结果流反序列化并返回, 其流程与WebService类似。
-远程模式的@DynCall回调
+远程模式的@RpcCall回调
与WebService的区别除了更具性能的二进制的数据格式,更差异的是远程模式的Service允许修改参数本身的内容。范例如下:
/**
- * 由于该方法在处理过程中修改了参数bean的内容,为了保证本地模式与远程模式的一致性,需要提供@DynCall回调接口
+ * 由于该方法在处理过程中修改了参数bean的内容,为了保证本地模式与远程模式的一致性,需要提供@RpcCall回调接口
*
* @param bean
* @return
*/
-public RetResult<UserInfo> login(@DynCall(DynCallLoginBeanAttribute.class) LoginBean bean) {
+public RetResult<UserInfo> login(@RpcCall(RpcCallLoginBeanAttribute.class) LoginBean bean) {
bean.setLogintime(System.currentTimeMillis());
bean.setSessionid("SID" + System.currentTimeMillis());
// 登陆逻辑
@@ -257,8 +257,8 @@
-/** DynCallLoginBeanAttribute 的实现 **/
-public class DynCallLoginBeanAttribute implements Attribute<LoginBean, Object[]> {
+/** RpcCallLoginBeanAttribute 的实现 **/
+public class RpcCallLoginBeanAttribute implements Attribute<LoginBean, Object[]> {
@Override
public Object[] get(LoginBean obj) {
@@ -287,7 +287,7 @@
}
}
生成远程模式Service时发现参数带有@DynCall注解的方法,在远程调用返回结果时会进行回调处理。
+生成远程模式Service时发现参数带有@RpcCall注解的方法,在远程调用返回结果时会进行回调处理。