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