帮助我一个.NET实时应用程序的解决方案

时间:2010-02-24 02:06:39

标签: c# .net architecture

我正在开发一个包含服务器应用程序和系统的系统。客户端应用程序,请注意:客户端数量可以达到百万。这些是我的要求:

  • 客户端必须对服务器进行身份验证(用户名和密码)才能接受连接。客户端将监听服务器,并接收从服务器发送的任何数据。
  • 当服务器有数据时,服务器将发送给所有连接的客户端。

请帮我解决一下。注意:客户端是WinForm应用程序,服务器是可以向所有连接的客户端发送数据的任何类型的应用程序。

P / S:目前,我的项目使用.NET Remoting,但它不适合我的要求,因为服务器无法向客户端发送数据。我做了一个技巧:每个客户端每2秒钟向服务器发送一次请求,检查服务器是否有新数据。如果是,客户端将收到数据。我需要一个新的解决方案来替换。

感谢。

4 个答案:

答案 0 :(得分:3)

查看Duplex WCF Services

警告,这不适用于https。

或者,Windows Azure Service Bus也支持双工通信。

答案 1 :(得分:2)

嗯,你需要先问自己和重要的问题,是一个2秒的轮询间隔真的是一个要求吗?你能减少频率吗?

你实际上是想要使用频繁的轮询,还是更喜欢使用其他技术,例如长轮询(连接保持打开,直到有新数据,然后关闭并重新创建)或真正的彗星/ PUSH设置连接始终打开的位置。

另一个重要的问题是这个网站会有多少负载,少数用户?一百,一百万?!

答案 2 :(得分:0)

如果您正在使用Web服务,我认为它无法实现,因为它始终是同步的。

答案 3 :(得分:0)

你看过Jabber(XMPP)吗?您的需求似乎是量身定制的,即您可以根据某些事件等触发发送以及有状态数据传输等。