Прежде всего, я создаю нечто вроде решения клиент/сервер с использованием стандартного веб-сайта ASP.NET. Я знаю, что этот метод не рекомендуется, и большинство людей хотели бы кричать «COMET!». или "HTML5 Sockets!" - но, пожалуйста, не надо ;-)!События через область применения для нескольких клиентов?
Что я делаю ...
Я создаю MMORPG на сайте.
У меня есть несколько клиентов, которым необходимо связаться одновременно. Это делается глобальным объектом в области Приложения.
Моя проблема
мне нужно, чтобы вызвать событие для нескольких клиентов. Например, когда атака была выполнена, мне нужно обновить некоторые графики. Логика атаки разрешается в глобальном объекте, но каждый из клиентов должен реагировать на это.
Прямо сейчас я делаю следующее:
fightTrace.Reciever.InvokeMoveEnded(this);
fightTrace.FiredBy.InvokeMoveEnded(this);
(Это своего рода шаблон наблюдателя)
Что будем бороться условие гонки. Тот, кто загружает событие page_load, получит оба этих события, а тот, кто их не запускает, не будет испытывать никаких изменений в пользовательском интерфейсе.
Так что же я действительно хочу?
Что мне действительно нужно, это подлинный и приятный способ создания шаблона наблюдателя через состояние приложения. Мне нужно отправить событие каждому «слушателю», который в этом случае является клиентом, а затем сделать некоторое обновление.
Один из способов сделать это - это сеанс, с истинным/ложным. Но мне бы очень хотелось, чтобы это было лучше!
Спасибо!