因此,我在查看人們爲雙面通信創建的示例示例,即由IIS託管並通過Silverlight連接時。有很多的這個那裏(this MSDN article is great)的例子,但所有使用相同的模式:羣集環境中的WCF雙工通信
用戶A連接到服務器A,這讓他在內存中的列表獲得未來的更新。
用戶B連接到服務器A,它會通知列表中有人「登錄」的所有用戶。
...但是當
用戶C連接到服務器C,在內存中的列表服務器C不包含用戶A或B.
的問題會發生什麼是我希望在集羣(Web場)環境中實現這一點。這使事情變得複雜,因爲我無法驗證哪臺機器會接管wcf呼叫,所以將任何消息轉發給所有其他用戶是困難的。
我能想到的最佳場景是實際上客戶端連接到某種路由服務,它接收傳入的請求並將客戶端轉發到特定的計算機。當然,那麼我會失去網絡農場的好處,因爲一臺機器可以有效地處理所有傳入的請求。
不太有效的解決方案是讓服務不斷輪詢某些內容(文件服務器上的文件或數據庫中的表)以查找更改。一旦出現變化,將它們推送給客戶端。這似乎是一個非常醜陋的寶貝,壽。
我錯過了什麼?
更新 - 路由系統對我的需求是不可能的。我的託管公司不允許我通過IP直接連接到農場上的特定機器。我只能連接到通用負載均衡器前端,因此不能保證我的用戶將在同一臺服務器上運行。
到目前爲止,我們只能輪詢db中的表來尋找變化。仍然像一個醜陋的嬰兒。
您的客戶使用哪種技術? – 2009-07-30 13:56:48
@Shiraz Bhaiji:客戶計劃在Silverlight中實施。 – JustLoren 2009-07-30 14:09:41