我正在研究一个媒体应用程序,我想提供一个外部API库,允许另一个应用程序与我的查询状态信息进行通信。我的应用程序是写在c#和API DLL将是相同的。最初我的想法是简单地使用WCF和命名管道,因为它将提供一种非常简单的方法来编写整个接口。
然而,我意识到,如果我想为应用程序制作一个android或Web远程,那么这样做将在很大程度上排除任何其他语言或平台与应用程序的通信。
那么,我可以使用什么协议来允许从我的c#代码中快速和简单的接口,但也允许在其他平台上编写api。
基本要求是:
- 本地和远程通信 低开销
- 过程调用
- 文件传输(发送媒体)
- 已经存在的c#,开源库会很好。
我看过很多选项,以前用过XML-RPC和JSON-RPC,但想知道社区认为什么是最好的选择。
我认为使用WCF是做你想做的事情的最好方法。它将是简单的维护,涵盖所有的需求,并易于扩展。只是不要只通过net.pipe限制对API的访问。我认为你应该使用网络。管、网。TCP和基本的HTTP作为主要绑定。我的意思是每个服务有几个端点。所以,一个客户端应用程序,不管它是用什么语言编写的,都可以选择使用什么绑定来访问你的API服务器。
例如:- 在同一台机器上的c#客户端应用程序-使用net。管
- PHP客户端应用程序在web -使用基本的http
- Java客户端应用程序在另一台机器-使用net.tcp
例如:
http://www.kevingao.net/wcf-java-interop/java-client-and-wcf-server.html