最兼容的进程间通信协议

时间:2011-08-13 21:08:45

标签: c# wcf cross-process

我正在开发一个媒体应用程序,我想提供一个外部API库,允许其他应用程序与我的查询状态信息进行通信。我的应用程序是用C#编写的,API DLL也是一样的。最初我的想法是简单地使用WCF和命名管道,因为它将提供一种非常简单的方法来编码整个界面。

然而,我意识到这样做几乎可以阻止任何其他语言或平台与应用程序通信,如果我想制作它,例如,安卓或Web远程。

因此,我可以使用哪种协议,允许在我的C#代码中使用快速简单的接口,但也允许在其他平台上编写API。

基本要求是:

  • 本地和远程通信
  • 低开销
  • 程序调用
  • 文件传输(发送媒体)
  • 预先存在的C#,开源库会很好。

我看过很多选项,之前使用过XML-RPC和JSON-RPC,但想知道社区认为什么是最好的选择。

1 个答案:

答案 0 :(得分:2)

我认为使用WCF这是做你想要的最好的方法。维护简单,满足您的所有要求,易于扩展。只是不要通过net.pipe限制对API的访问。我认为你应该使用net.pipe,net.tcp和基本的http作为主要绑定。我的意思是每个服务的几个端点。因此,客户端应用程序无论使用何种语言编写,都可以选择用于访问API服务器的绑定。

例如:

  • 同一台机器上的C#客户端应用程序 - 使用net.pipe
  • 网络中的PHP客户端应用 - 使用基本的http
  • 另一台计算机上的Java客户端应用程序 - 使用net.tcp

举个例子:

http://www.kevingao.net/wcf-java-interop/java-client-and-wcf-server.html