pomelo RPC调用时新增字段缺失
2017-09-01 19:34
288 查看
接触pomelo开发一个月,正式开始参与项目开发有10天,遇到很多细节的坑,今天讲讲标题:后端服务器节点之间的rpc调用过程中,返回的数据中新增字段缺失问题。
先讲结果:原因是该rpc调用已经采用了protobuf协议,里面已经定义了传递的字段,新增字段也需要在相应XX.proto文件中定义。
下面看代码:下面的rpc跟框架本身的不太一样,是经过改造的,简单分析下,该rpc调用“userCenter”服务器中"butlerRemote"下的"addButlers"函数
下面是butlerRemote.js文件:
next(data)即将rpc调用的数据返给调用节点。
下面我们针对该数据定义proto协议:
可以看到定义是C++的写法,看第二行,package butlerRemote,说明该协议针对这个路由的请求数据和返回数据,我们以addButlers为例,"message addButlers"即某个节点调用butlerRemote.addButlers时传递的参数协议,不仅仅是字段名称和数量要完全一致,字段类型也必须严格遵守协议,否则也会获取不到相应字段并报错,“message addButlerAck即”butlerRemote.addButlers执行后返给请求节点的数据。
ACK (Acknowledgement):”确认字符,在数据通信中,接收站发给发送站的一种传输类控制字符”。
先讲结果:原因是该rpc调用已经采用了protobuf协议,里面已经定义了传递的字段,新增字段也需要在相应XX.proto文件中定义。
下面看代码:下面的rpc跟框架本身的不太一样,是经过改造的,简单分析下,该rpc调用“userCenter”服务器中"butlerRemote"下的"addButlers"函数
下面是butlerRemote.js文件:
next(data)即将rpc调用的数据返给调用节点。
下面我们针对该数据定义proto协议:
可以看到定义是C++的写法,看第二行,package butlerRemote,说明该协议针对这个路由的请求数据和返回数据,我们以addButlers为例,"message addButlers"即某个节点调用butlerRemote.addButlers时传递的参数协议,不仅仅是字段名称和数量要完全一致,字段类型也必须严格遵守协议,否则也会获取不到相应字段并报错,“message addButlerAck即”butlerRemote.addButlers执行后返给请求节点的数据。
ACK (Acknowledgement):”确认字符,在数据通信中,接收站发给发送站的一种传输类控制字符”。
相关文章推荐
- dede新增字段调用方法
- pomelo 强制发起rpc调用
- 给Pomelo的聊天室添加time的RPC调用
- v9 调用模型中新增的字段
- dede在内容模型中新增字段的调用方法
- pomelo rpc调用出错的解决
- 使用hadoop RPC实现RPC调用
- sqlserver sysobject 查找新增字段和修改字段
- Openstack的RPC通信代码调用架构
- DTcms 扩展字段标签调用
- mybatis动态调用表名和字段名
- PC远程调用Android上的程序(RPC)
- 第一篇 演示如何访问 Email 字段 并调用出来
- Axis2 的 RPC 和 AXIOM 服务端方法的两种调用方式
- ThinkPHP怪现象:数据表新增字段后开发模式可更新运行模式无法更新
- php xml-rpc远程调用
- 反射-优化及程序集等(用委托的方式调用需要反射调用的方法(或者属性、字段),而不去使用Invoke方法)
- dedecms 添加自定义图字段,调用时出错
- JAX-WS一个很简单的RPC风格的Web Service同步调用
- WO+开放平台:API调用开发手记(关于签名字段)