2010-04-03 50 views
2

我需要通過HTTP/HTTPS運行(由於客戶端的安全需求),不使用MSMQ(因爲某些客戶端將使用Windows XP家庭版),可靠的消息傳遞框架。客戶端只需要能夠接收消息,而不是發送消息。我怎樣才能收到通過HTTP消息,而不MSMQ

我們已經在服務器爲每個用戶在消息隊列中,接收器已經被連接到一個HttpHandler的服務器上,並正從

WebResponse.GetResponseStream() 

的Stream我們保持這種流開放獲取的消息,並使用Stream.Read()將消息拉出。這大部分工作,但Stream.Read()是一個阻塞調用,我們不能可靠地中斷它。我們需要能夠在不丟失消息的情況下停止並啓動接收器,但即使我們在其線程上調用Thread.Abort之後,舊的流仍然經常掛起。

有什麼建議嗎?

回答

3

我會使用WCF。它支持WS-ReliableMessaging標準。您可以對其進行配置,以保證消息以正確的順序到達。

1

關於鎖定問題,你有沒有考慮WCF框架?

單。一次一個線程可以訪問服務對象。這是此屬性的默認值。 可重入。一次一個線程可以訪問服務對象,但線程可以退出並重新輸入。 多個。一次有多個線程可以訪問服務對象。

http://msdn.microsoft.com/en-us/library/dd936243.aspx

它允許在服務多次調用的行爲大量的控制,並與HTTP和HTTPS的作品。