2011-11-25 57 views
2

我對正在處理的項目有以下體系結構。如何在web應用程序中實現TCP/IP響應者「服務」

Architecture Drawing

我的問題是如何開始實施的TCP/IP響應的一部分。 如果圖很難閱讀,它的功能是等待來自訂購查看客戶端的連接,並隨後通知所述客戶端接收訂單。

我在想一個隊列,但不幸的是我不知道這樣的東西適合VS2008的層次結構。

如果它是ASP.NET網頁的一部分,我應該使用應用程序啓動事件來啓動TCP IP響應程序嗎?

這不是一個Web服務,因爲那些響應HTTP請求......

回答

4

如果我必須實現你的「TCP響應者」,我可能會實現它作爲一個Windows服務,並有ASP.NET應用程序和Winform客戶端聯繫它(例如,以避免ASP的回收問題。 NET等)

這麼說,我能想到的極大數的更容易的方式得到你想要達到(獲得WinForm的客戶瞭解新訂單),如

  • 使用隊列正如你所提到的效果。 Windows隨附MSMQ(您需要在添加Windows功能中啓用它)。使用C#中的MSMQ is fairly easy。您也可以use WCF if you like
  • 曝露出http endpoint on the client並讓客戶端通過調用某個頁面的通知ASP.NET服務器在那裏聽
  • 寫訂單數據庫,並從客戶端查詢它/使用System.Data .SqlClient.SqlDependency知道什麼時候有一個變化

哎呀甚至寫在訂單上的文件中的共享文件夾有FileSystemWatcher的將工作(雖然我可能不會建議)

+0

對於WCF建議+1。 WCF服務可以處理NET TCP綁定和HTTP綁定。 –

1

你爲什麼不使用HTTP?你已經有了http服務器,所以你不需要任何TCP響應者 - 只需在客戶端進行http輪詢。 如果你不想投票或有太多客戶,那麼你可以使用像SignalR這樣的通知。

+0

點是爲了避免http輪詢。沒有聽說過SignalR,會檢查出來。 – lowerkey

相關問題