Я слежу за этой замечательной статьей , чтобы разобраться и понять чат, используя 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