首先,我使用標準的ASP.NET網站創建了一個類似於客戶端/服務器解決方案的東西 - 我知道這種方法沒有提供建議,大多數人都喜歡尖叫「COMET!」或「HTML5套接字!」 - 但請不要;-)!通過應用程序範圍的事件到多個客戶端?
我在做什麼...
我創建一個網站上的MMORPG。
我有幾個客戶需要同時聯繫。這由應用程序範圍中的全局對象完成。
我的問題
我需要調用一個事件來幾個客戶。例如,當執行攻擊時,我需要更新一些圖形。攻擊邏輯在全局對象中解析,但每個客戶端都必須對此做出響應。
現在我做到以下幾點:
fightTrace.Reciever.InvokeMoveEnded(this);
fightTrace.FiredBy.InvokeMoveEnded(this);
(這是一種觀察者模式)
什麼現在happends是一個競爭條件。加載page_load事件的人將獲得這兩個事件,而沒有運行這些事件的人將不會在UI中發生任何更改。
那麼,我真的想要什麼?
我真正需要的是通過應用程序狀態創建觀察者模式的一些真實而好的方法。我需要向每個「偵聽器」發送一個事件,在這種情況下,這是一個客戶端,然後進行一些更新。
做到這一點的一種方法是一些會話事情,與真/假..但我真的很喜歡一些更好的方式!
謝謝!