【发布时间】:2011-04-26 21:56:01
【问题描述】:
编辑:我忘了包括 Web 应用程序的主要候选者:JSON over HTTP/REST + Comet。它结合了其他人的最佳功能(下)
- Persevere 基本上将我需要的一切都捆绑在服务器中
- Java 等的重点肯定是 Comet 服务器,但使用/编写客户端也不会太难。
我正在着手开发一个应用程序,其服务器保存数据,客户端执行会影响此数据的操作,因此需要所有感兴趣/订阅的客户端进行某种通知。
第一个客户端可能会用 WPF 编写,但我们可能需要添加用其他语言编写的客户端,例如一个 Java(Swing?)客户端,可能还有一个 Web 客户端。
实际问题:我应该使用什么协议来实现它?与 JS、Java 和 .NET(准确地说是 C#)客户端集成有多容易?
我可以使用多个接口/协议,但总体而言,使用可互操作的接口/协议会更容易。鉴于互操作性很重要,我研究了几个选项:
- JSON-RPC
- 轻量级
- 支持通知
- 我能找到的唯一 .NET 库 Jayrock 不支持通知
- 与 JS 配合得很好
- 也适用于基于 XML 的内容(甚至可能是二进制协议),但由于本机支持,这可能会更有效
- Protobuf/Thrift
- IDL 可以轻松地以每种语言输出模型类
- 似乎不支持通知
- Thrift 自带 RPC,但 protobuf 没有
- 不知道 JS
- XML-RPC
- 够简单,但不支持通知
- SOAP:我什至不确定这个;我还没摸透这个。
- 看起来相当复杂
- 消息队列/PubSub 方法:严格来说不是协议,但可能适合
- 我对它们几乎一无所知,迷失在流行语中`-- JMS? **MQ?
- 也许与上面的一些 RPC 机制相结合,尽管这可能不是绝对必要的,而且可能是矫枉过正。
当然,欢迎使用其他选项。
【问题讨论】:
标签: interop notifications rpc