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