如何创建跨平台双工web服务通信



我想在.Net中创建一个web服务,不同类型(web、exe、java)的客户端可以使用该服务,而不管它们是用什么语言编写的。

此外,它需要支持回调,并能够轻松通过防火墙和NAT(知道客户端内部IP可能会更改或从NAT中删除)。

第三,由于它是一种企业产品,我想避免依赖第三方,尤其是那些需要特定环境或客户不想要的第三方。

我可以使用什么样的技术或方法?

我正在研究web套接字,但我也看到了很多复杂性,我不确定是否有很多拓扑和互操作性边界情况会让我变得不可靠。

感谢

对于简单的请求-响应服务,您可以使用REST(通过HTTP)。任何客户端技术都可以在这一点上访问HTTP(甚至是CLI),REST是一种众所周知的分布式机制。这个问题涉及回调。有一些框架可以处理HTTP回调(简单的谷歌搜索会给你很好的答案),但imo,我看到的解决方案很笨拙。

与普通HTTP不同,WebSocket是一个持久连接。像任何其他IETF和W3C规范(或任何其他标准)一样,有各种具有不同程度可靠性、性能等的实现。WebSocket客户端和服务器可能有大约100种实现。有些实现可以处理现实世界中的问题,如重新连接、网络中介、高可扩展性、移动功能等,而有些实现则不然。我建议您选择一个提供这些企业级功能的实现。

顺便说一句,WebSocket是一个非常简单的