全双工的简单RPC框架需求

原创
2015/12/28 17:07
阅读数 915

最近在设计一个RPC框架,有些基本的想法,抛砖引玉看是否有类似的原型。

#需求场景

  • 游戏,html游戏;
  • 业务平台和各个同业务终端的对接;譬如:医疗平台、物流平台、停车平台等等;

#需求

  • 客户端可以call服务器的接口实现;
  • 服务器也可以call客户端的接口实现;
  • 双方可以纯粹的发送通知,不等待响应;
  • 需要支持认证,客户端主动发起认证;
  • 有些服务接口实现,需要获得认证账户信息;

#技术准备

  • 基于socket长连接实现,而不是http;客户端负责保持连接;
  • 兼容websocket方案,客户端可以运行在html5;
  • 跨语言的序列化方式,譬如protobuffer,json,hessian,先选择json,可以参考JsonRpc 2.0协议;
  • 服务器实现首先锁定在java,用netty库实现;
  • 客户端的demo,首先实现在java和javascript上;

#技术要点

  • 客户端call服务器端简单,标准的rpc方案都有;
  • 服务器实现特殊处理Context接口;如果是该接口的实现,invoke的时候,需要先将正确channel信息设置到实现的变量上(线程安全);
  • 服务器主动调用客户端接口;首先每个客户端通过认证接口,维护唯一的ID编号;服务器调用客户端接口的时候,第一个参数设置为ID,作为客户端区分,该请求转发到ID对应的连接上,并等待客户端响应;
  • 标记为Notify的接口,不需要等待响应;

#后续待定。。。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部