【问题标题】:Help me a solution for a .NET real-time application帮我一个 .NET 实时应用程序的解决方案
【发布时间】:2010-02-24 02:06:39
【问题描述】:

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

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

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

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

谢谢。

【问题讨论】:

  • 我编辑了我的问题。或许每个人都能理解。对不起我的英语不好。

标签: c# .net architecture


【解决方案1】:

看看Duplex WCF Services

警告,这不适用于 https。

另外,Windows Azure Service Bus 也支持双工通信。

【讨论】:

    【解决方案2】:

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

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

    另一个重要的问题是这个网站将承受多少负载,几个用户?一百,一百万?!

    【讨论】:

    • 我完全是在考虑 web 应用程序,但如果这是一个 winforms/wpf 应用程序,那么我会遵从 willbt。
    • 我更喜欢使用长轮询。当客户端连接到服务器时,它会监听,当服务器有新数据时,服务器将发送给客户端,客户端将使用这些新数据进行操作。 P/S:我的应用是一个实时股票终端,拥有百万用户。客户端是一个 WinForm 应用程序。服务器是一个窗口服务。显然,在交易时间,服务器总会有新的数据(实时数据)。但在交易小时后,服务器将没有新数据。
    【解决方案3】:

    如果您使用的是网络服务,我认为它无法完成,因为它始终是同步的。

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-16
        • 1970-01-01
        • 1970-01-01
        • 2022-06-12
        相关资源
        最近更新 更多