.net 双向客户机-服务器体系结构/实现

.net 双向客户机-服务器体系结构/实现,.net,client-server,.net,Client Server,我有一个系统,我需要在客户端和服务器之间进行双向通信。在某些情况下,客户端需要启动与服务器的通信,以询问问题、查询状态、获取一些数据等。{我们有一个AI系统,可执行重复任务、监控、报告生成、警报等。客户端应用程序允许我们与服务器交互。}在其他情况下,服务器需要向客户端报告某些状态更改或警报。我们正在使用.NET实现该系统,并研究了许多不同的体系结构: A) 打开TCP通道并在较低级别管理通信。这似乎满足了我们的需求,但一直相当不稳定,主要是因为我们的团队缺乏在低级别通信协议方面的丰富经验 B)

我有一个系统,我需要在客户端和服务器之间进行双向通信。在某些情况下,客户端需要启动与服务器的通信,以询问问题、查询状态、获取一些数据等。{我们有一个AI系统,可执行重复任务、监控、报告生成、警报等。客户端应用程序允许我们与服务器交互。}在其他情况下,服务器需要向客户端报告某些状态更改或警报。我们正在使用.NET实现该系统,并研究了许多不同的体系结构:

A) 打开TCP通道并在较低级别管理通信。这似乎满足了我们的需求,但一直相当不稳定,主要是因为我们的团队缺乏在低级别通信协议方面的丰富经验

B) 使用两个系统都充当主机的.NET远程处理-客户端将服务器注册为远程处理主机,一旦建立连接,服务器将继续并将客户端注册为不同通道下的远程处理主机。对于基本的消息传递来说,这似乎还可以,但在某些情况下,我们需要在客户端和服务器之间保持“对话”。在这种架构下拥有多个客户端似乎有点挑战性

C) 忘记双向通信,使用轮询体系结构轮询服务器以获取新消息-工作正常,但会创建一个过于健谈的系统,并使客户端和服务器之间的“对话”具有挑战性


对最好的方法有什么想法吗?有什么不同的推荐方法吗?

看看WCF——这可能是一种不必担心低层管道而获得所需的方法。

WCF似乎是一个不错的选择。有一个相当不错的教程介绍了如何实现客户机/服务器聊天应用程序


还有一系列的网络广播和由同一位作者撰写的

我有很好的经验(在“概念验证”级别——还没有在生产中部署它)作为双向通信的协议;虽然人们通常认为它是一种交互式聊天应用程序,但它实际上是一种通用协议,并且有.NET实现。微软的替代方案可能是MSMQ。

如果客户端是IOS设备或android设备,在WCF中使用双工服务怎么样?这些客户端将支持回调吗