代码之家  ›  专栏  ›  技术社区  ›  TomTom

4.0/wcf:双向消息总线的最佳方法?

  •  3
  • TomTom  · 技术社区  · 16 年前

    只是技术更新,现在.NET 4.0已经过时了。

    我编写了一个通过基本上是消息总线(而不是方法调用)与服务器通信的应用程序。这是基于应用程序的内部架构(多线程,传递消息)。

    从客户机到服务器的消息数量有限,从服务器到客户机的消息数量要多得多。其中大多数都可以通过单独的专门机制来处理,但最后我们讨论了从服务器到客户机的可能每秒10-100条小消息。

    客户应在“互联网条件”下运营。这意味着在标准的NAT设备(即典型的DSL路由器)后面可能有家庭终端用户——不能假设是一个防火墙安全的“开放”网络。

    我希望尽可能减少通信的延迟和延迟。

    处理消息总线回调的技术上最好的方法是什么?如果需要发送消息,我可以定期打电话给服务器进行消息传递… …但是我有什么选择来处理从服务器到客户机的消息?

    • wsdualhttp如何工作?尤其是在自然环境下?

    正如一个注意事项:轮询很可能是不存在的——这里的主要问题是我会有一个很大的开销或者一个很大的延迟,这两者都不是真正需要的。从技术上讲,我喜欢某种流式Appraoch,在这种方式下,服务器可以在生成messags时将其写入流中,并在其到来时将其发送给客户机。当然,这在WCF中是可行的(如果不是,我可能会准确地决定在WCF之外处理整个消息部分,并通过WCF进行控制/登录/设置/销毁)。

    3 回复  |  直到 16 年前
        1
  •  1
  •   kyoryu    16 年前

    对于双向通信,最好的选择是nettcpbinding,而不是http绑定(如果有)。

    这样做的好处是只需要客户端可以启动与服务器的连接。

        2
  •  0
  •   Community Mohan Dere    9 年前

    我会和Windows Azure服务总线一起去。在以下问题中查看我的答案:

    WCF, 4.0, Bidirectional

        3
  •  0
  •   scope_creep    16 年前

    看看Windows AppFabric,好的开始位置是 Here . 它从根本上将WCF和WF打包到应用服务器中,通过WAS支持WCF激活。在那里我可以托管这种类型的应用程序。它提供了面向全双工连接的P2P或客户端和服务器之间的会话。不要将Windows AppFabric与Azure AppFabric混淆(通常称为Azure服务总线)。

    对于上面的绑定,nettcpbinding和wsdualhttp都提供回调,但是ws binding为您的现金带来了很多好处,特别是在混合编程环境中,您必须扁平WSDL才能使互操作工作。我还认为wsdual在路由器遍历上更容易,尽管我了解与朋友交谈,Windows AppFabric通过新的中继服务(我没有见过,我想现在已经被重命名)缓解了这种情况。

    希望有帮助。

    推荐文章