2009-05-06 52 views
5

我想知道是否有人試圖用這種技術從服務器端獲取事件給客戶端。我有一個使用基於Unix的服務器的環境,所以不能使用WCF雙工/回調等。WCF在客戶端自主託管?好還是壞

這個想法是,我的客戶端是運行一個厚的.net應用程序的Windows框會啓動一個WCF自己的主機,並註冊他們自己的主機URL在該會話的服務器上。他們會有一個非常簡單的合同,當服務器有一個更新呼叫客戶端服務器告訴它一個更新正在服務器上等待它,然後客戶端會得到它等等。

我仍然試圖讓我的腦袋圍繞WCF,所以不知道這是否是一個好方法,是否有任何安全隱患我應該擔心?有沒有辦法讓雙面呼叫在平臺上工作?

在使用套接字之前,我已經做了類似的事情,或者跨平臺的消息隊列無論如何都是更好的方法。

感謝

76mel

回答

1

最起碼,這聽起來像它應該工作,雖然我想你可以在IIS託管以及自* nix的服務器然後可以只是做一個網站打電話吧?我不確定什麼自託管會給你帶來好處,雖然它應該可以正常工作,但是可能會更加痛苦地配置,等等。

請在這裏更新,只要你做出決定因爲這聽起來像是一個有趣的挑戰,我們中的一些人想看看你是如何做出的。

+0

是的我曾考慮過在IIS中間層放置它的一個好主意。我的想法是,我們有10,000個客戶端和1/3的併發數,因此支持在IIS框中花費一點。 我打算進行一個概念驗證,並會保持公佈,但如果有人有更多的想法,見解和關注,如果作爲啓動TCP監聽器的好事情是常見的做法,爲什麼不WCF服務。 – 76mel 2009-05-06 16:55:14

+0

好吧,我已經嘗試過這一切都得到了它的工作。我認爲這對防火牆內部的項目非常有效。如果你想跨越防火牆,我認爲使用總線/隊列是一個更好的方式,因爲你在較低的層次連接。我在這裏做的是得到一個Unix服務器知道的簡單事件契約。我在Windows服務中運行WCF服務,首先使用端點向服務器註冊自己。服務器然後可以在我的端點觸發事件,並且可以通過從服務器提取數據來響應這些事件。 – 76mel 2009-05-20 09:16:11

1

我們對於類似的場景使用自託管的WCF。我們也想避免使我們的客戶端應用程序依賴於IIS,以防止許可和部署的麻煩。

它對我們來說工作得很好,雖然WCF可能會爲你需要的東西矯枉過正。由於您使用的是HTTP,因此您可以創建一個直接在Http.sys上構建的簡單Web服務。

1

獲得類似結果的另一種方法是讓客戶進行投票。這確實取決於什麼要求。如果你需要近乎實時的更新,這顯然不起作用,因爲你必須讓很多民意調查才能做到這一點,但如果花費一分鐘或更長時間來獲取客戶端更新是可以的,那麼輪詢可能只是答案。

相關問題