まず、標準のASP.NET Webサイトを使用してクライアント/サーバーソリューションのようなものを作成しています。この方法は推奨されていないことを知っています。ほとんどの人は「COMET!」と叫びたがります。または「HTML5ソケット!」-しかし、しないでください;-)!
私がしていること...
私はウェブサイトでMMORPGを作成しています。
同時に連絡を取る必要のあるクライアントが何人かいます。これは、アプリケーションスコープのグローバルオブジェクトによって実行されます。
私の問題
複数のクライアントに対してイベントを呼び出す必要があります。たとえば、攻撃が実行された場合、いくつかのグラフィックを更新する必要があります。攻撃ロジックはグローバルオブジェクトで解決されますが、各クライアントはこれに応答する必要があります。
今、私は次のことをします:
fightTrace.Reciever.InvokeMoveEnded(this);
fightTrace.FiredBy.InvokeMoveEnded(this);
(これは一種のオブザーバーパターンです)
現在起こっているのは競合状態です。page_loadイベントをロードする人はこれらのイベントの両方を取得し、それらを実行していない人はUIに変更を経験しません。
それで、私が本当に欲しいのは何ですか?
私が本当に必要としているのは、アプリケーションの状態を通じてオブザーバーパターンを作成するための本物の素晴らしい方法です。この場合はクライアントであるすべての「リスナー」にイベントを送信してから、更新を行う必要があります。
これを行う1つの方法は、真/偽のセッションのものです。しかし、私は本当にもっと良い方法が欲しいです!
ありがとう!