2011-05-06 93 views
2

我正在開發使用WPF最有可能開發的新RIA。此應用程序將通過不可靠的網絡(例如3G)與Web服務進行通信。通過不可靠的網絡進行.NET客戶端 - 服務器通信

如何實現類似情景可靠的通信 -

  1. A「創建」操作成功 在服務器/ WebService的(比如說一個新 記錄的創建),但響應 含有記錄標識符 無法將其返回給客戶端 應用程序。

  2. 處理支付這應該是一個 原子操作

是MSMQ與WCF的最佳選擇這裏還是有已知的策略和模式,而無需使用的消息框架來實現對不可靠的網絡(如3G)的可靠性?

回答

1

可以跨HTTP使用MSMQ,但如果使用開放源碼RabbitMQ queuing framework,則會更好。它還包含一個WCF綁定,您應該可以將其用於您的場景。帶有MSMQ的WCF非常適合在防火牆內部使用,但它並非針對互聯網而設計的。

+1

在這種情況下,什麼使RabbitMQ成爲比MSMQ更好的選擇? –

+1

簡短的回答是,RabbitMQ被設計爲使用HTTP作爲其本地傳輸之一,MSMQ被設計爲使用專有的二進制傳輸。 MSMQ稍後由微軟調整爲通過HTTP工作,但此功能不受現成的WCF綁定支持(netMsmqBinding無法通過HTTP工作)。 RabbitMQ提供了一個WCF綁定,可以讓你通過HTTP進行消息傳遞。 Amazon EC2雲服務甚至支持RabbitMQ,因此您知道它可以在互聯網上使用。我想這不是一個答案太短... :) –

+0

更新我的意見RabbitMQ的本地傳輸是TCP,並有一個基於HTTP的實驗性傳輸正在工作。對困惑感到抱歉。 –

相關問題