【问题标题】:How to create a cross platform duplex web service communication如何创建跨平台双工 Web 服务通信
【发布时间】:2015-12-19 10:22:16
【问题描述】:
我想在 .Net 中创建一个 Web 服务,不同类型(Web、exe、java)的客户端可以使用它们,而不管它们是用什么语言编写的。
此外,它需要支持回调并能够轻松通过防火墙和 NAT(知道客户端内部 IP 可能会更改或从 NAT 中删除)。
第三,由于它是企业产品,我想避免依赖第三方,尤其是那些需要特定环境或客户不想要的第三方。
我可以使用什么样的技术或方法?
我正在研究 Web 套接字,但我也看到了很多复杂性,我不确定是否有很多拓扑和互操作性边界情况可能使我变得不可靠。
谢谢
【问题讨论】:
标签:
web-services
websocket
nat
duplex
wcf-interoperability
【解决方案1】:
对于简单的请求-响应服务,您可以使用 REST(通过 HTTP)。此时任何客户端技术(甚至 CLI)都可以访问 HTTP,而 REST 是一种众所周知且易于理解的分布式机制。问题涉及回调。有处理HTTP回调的框架(简单的google搜索会给你很好的答案),但是imo,我看到的解决方案很笨拙。
与普通的 HTTP 不同,WebSocket 是一个持久连接。与任何其他 IETF 和 W3C 规范(或任何其他相关标准)一样,存在具有不同程度的可靠性、性能等的各种实现。WebSocket 客户端和服务器可能有大约 100 个实现。一些实现处理现实世界的问题,如重新连接、网络中介、高可扩展性、移动能力等……而一些实现则不处理。我建议您选择一个提供这些企业级功能的实现。
顺便说一句,WebSocket 非常简单