SignalR 等技术的重点是满足服务器和 Web 客户端之间实时通信的需求。他们利用 WebSockets 并回退到旧 Web 浏览器的旧/黑客通信机制。
如果您的环境将是 LAN 并且您的客户端是 .NET 应用程序,那么您可以使用 TCPServer 和多个 TCPClients。当您的 Web 服务器有更新/消息要发送时,告诉您的 TCPServer(可能通过将消息放在它正在侦听的消息总线上),这可以通知连接的客户端。实时 Web 技术是实现此目的的好方法,但这实际上取决于您当前的需求以及您对未来的计划:
- 你想试试 SignalR - 如果是,那么它会起作用,你可能会玩得很开心。它也可能对未来的项目有用,并成为你弓上的一根好绳子。如果不是,TCPClient 和 TCPServer 方法可能会超级简单且执行速度更快。
- 您是否需要其他类型的 Web 客户端将来能够接收通知?- 是的,SignalR 或其他更成熟的自托管实时 Web 技术可能是更好的解决方案。否 - TCPServer/Client
- 您是否计划将数据分发到 LAN 之外?是的 - 自托管选项或事件与 .NET 库的托管解决方案可能是要走的路,因为它们消除了维护开销(免责声明:我为提供此类服务的Pusher工作) 。否 - 自托管或 TCPServer/Client。
- 速度有多重要?如果它真的很重要,那么绝对没有开销的 TCP 连接将是最快的选择。第二个最好的选择是 WebSockets,然后是 HTTP 流,然后是 HTTP 长轮询。
注意:虽然我说 TCPServer/Client 可能是最简单的方法,但我想强调它也可能不是。WebSockets 是一项非常令人兴奋的技术,并且在许多方面比 TCPClient 技术更易于访问,因此可能成为任何服务器和客户端之间双向通信的主导技术*
我不能评论双工合同,但我的理解是他们建立的连接没有持久化,所以它们实际上是一个轮询解决方案——我可能是错的。