この素晴らしい記事に従って、 WCF を使用したチャットを分析して理解しています。ロジックは、ユーザーがチャットに参加すると、その特定のユーザー用にイベント ハンドラーが作成され、辞書に格納されるというものです。
lock (syncObj)
{
if (!checkIfPersonExists(person.Name) && person != null)
{
this.person = person;
chatters.Add(person, MyEventHandler);
userAdded = true;
}
}
そのため、サービス内の複数のユーザーに対して複数のハンドラーが格納されます。
私の質問はこれです -
イベント ハンドラーの助けを借りてメッセージが送信されたときに、サービスはどのようにターゲット ユーザーを識別しますか? ユーザー用に保存されているイベント ハンドラーの一意性がわかりません。どうやって
handler.BeginInvoke(this, e, new AsyncCallback(EndAsync),
null);
その特定のユーザー向けに二重クライアント コントラクト インターフェイスを実装したクライアント側の関数を呼び出しますか? それらを接続するのはどれですか?セッション?
注: この記事を読まずに理解するのは難しいかもしれません。一般的な方法で質問するように最善を尽くしました。
よろしく
NLV