假設你有一個簡單的骰子游戲。它在網上播放。玩家1滾動,然後玩家2.需要有一些機制來通知玩家輪到他們。由於網絡無狀態,基於pull的性質,該解決方案似乎不如Windows應用程序明顯。觀察者模式可以用於在網絡上提供即時通知嗎?
- 一種方法是定期輪詢服務器。 >,<
MS談到active MVC。本質上它是應用觀察者模式的MVC。所以,遊戲本身就是「主體」,玩家1,玩家2是觀察者。
觀察員可以用作網絡上即時通知的解決方案嗎?
假設你有一個簡單的骰子游戲。它在網上播放。玩家1滾動,然後玩家2.需要有一些機制來通知玩家輪到他們。由於網絡無狀態,基於pull的性質,該解決方案似乎不如Windows應用程序明顯。觀察者模式可以用於在網絡上提供即時通知嗎?
MS談到active MVC。本質上它是應用觀察者模式的MVC。所以,遊戲本身就是「主體」,玩家1,玩家2是觀察者。
觀察員可以用作網絡上即時通知的解決方案嗎?
Here是技術很好的總結,以實現雙向通信:
你說的沒錯,玩家會觀察遊戲狀態。長期持續的民意調查可以讓玩家知道是誰轉身,以及其他遊戲狀態信息。
我們正在使用長時間等待的HTTP請求來獲得類似的功能。你做什麼是你做一個HTTP請求服務器與客戶端設置的超時超時(例如,10分鐘)。在服務器處理程序中,您可以在事件觸發的某個同步對象上執行WaitOne(serverTimeout),並稍微縮短超時時間(8分鐘) - 並在發生事件或超時過期時立即返回答案。
使用AsyncController進行此類查詢很方便。
那麼,是的,但只有在這些機制之一的幫助下。 –