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