【问题标题】:How to implement TCP/IP responder "service" in web application如何在 Web 应用程序中实现 TCP/IP 响应者“服务”
【发布时间】:2012-01-06 12:09:41
【问题描述】:

我正在从事的项目具有以下架构。

我的问题是如何开始实现 TCP/IP 响应器部分。 如果图表难以阅读,它的功能是等待来自 Order Viewing 客户端的连接,然后通知该客户端收到的订单。

我正在考虑一个队列,但不幸的是,我不知道这样的东西在 VS2008 的事物层次结构中的什么位置。

如果它是 ASP.NET 网页的一部分,我应该使用应用程序启动事件来启动 TCP IP 响应程序吗?

它不是网络服务,因为那些响应 http 请求...

【问题讨论】:

    标签: c# asp.net architecture


    【解决方案1】:

    如果我必须实现您的“TCP 响应程序”,我可能会将其实现为 Windows 服务,并让 ASP.NET 应用程序和 Winform 客户端联系它(例如,避免 ASP.NET 的回收问题等等)

    也就是说,我可以想到无数更简单的方法来获得您想要达到的效果(让 winform 客户端了解新订单),例如

    • 使用您提到的队列。 Windows 附带 MSMQ(您需要在添加 Windows 功能时启用它)。使用来自 C# is fairly easy 的 MSMQ。你也可以use WCF if you like
    • 公开http endpoint on the client 并让客户端通过调用其中一个页面来通知 ASP.NET 服务器正在侦听的位置
    • 将订单写入数据库并从客户端轮询/使用 System.Data.SqlClient.SqlDependency 了解何时发生变化

    甚至使用 FileSystemWatcher 将订单写入共享文件夹中的文件也可以(尽管我可能不建议这样做)

    【讨论】:

    • +1 表示 WCF 建议。 WCF 服务可以处理 NET TCP 绑定和 HTTP 绑定。
    【解决方案2】:

    你为什么不使用http?您已经拥有 http 服务器,因此您不需要任何 TCP 响应程序 - 只需在客户端进行 http 轮询。 如果您不想轮询或有太多客户端,那么您可以使用 SignalR 之类的东西来通知。

    【讨论】:

    • 重点是避免http轮询。没听说过 SignalR,去看看吧。
    猜你喜欢
    • 2011-08-02
    • 2011-06-26
    • 1970-01-01
    • 2013-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-09
    相关资源
    最近更新 更多