Изменение состояния после обновления (другим пользователем), но до опроса - PullRequest
0 голосов
/ 21 июля 2011

предположим, что у нас следующий сценарий:

  1. 2 пользователя сигнализируют о готовности к игре, приложение rails получает его и запускает игру
  2. один из 2 пользователей выдает "немедленно "через ajax" (я предполагаю, что это невозможно предотвратить, амирит?)
  3. к тому времени, когда другой пользователь опрашивает, чтобы выяснить, началась ли игра, игра уже закончилась и счет обновился
  4. этот пользователь в замешательстве

Я не совсем уверен, что здесь делать.Кто-нибудь может дать мне несколько идей?


Хорошо, я понял, что я сделал не так.(пока не могу ответить сам, потому что мой представитель слишком низкий)

Когда пользователь опрашивает, чтобы выяснить, началась ли его игра, и получает ли ходы и т. д., я проверяю «игра в процессе» и «пользователь».= опрос пользователя "атрибуты, чтобы выяснить, что ответить.Но это неправильно, потому что, как только закончится, этой логике не удастся найти подходящую игру для извлечения данных и возврата пользователю.

То, о чем я сейчас думаю, это добавить «конец игры».был опрошен "как атрибут игрового объекта (ну, игра объектов через отношения), поэтому, если игра завершилась, но не была опрошена, пользователь получит ее один раз, а затем ответит для подтверждения.Тогда игра больше не будет опрошена.

Ответы [ 2 ]

0 голосов
/ 22 июля 2011

Хорошо, я понял, что я сделал не так.

Когда пользователь опрашивает, чтобы выяснить, началась ли его игра, и получает ли ходы и т. Д., Я проверяю атрибуты "игра в процессе" и "пользователь = пользовательский опрос", чтобы выяснить, что ответить. Но это неправильно, потому что, как только закончится, эта логика не сможет найти подходящую игру для извлечения данных и возврата пользователю.

То, о чем я сейчас думаю, это добавить «конец игры был опрошен» в качестве атрибута к игровому объекту (ну, играя объекты через отношения), так что если игра завершилась, но не была опрошена, пользователь будет получить его один раз, а затем ответить для подтверждения. Тогда игра больше не будет опрошена.

Однако теперь возникает новый вопрос, например, что если между опросами происходит многократное изменение состояния.

Может быть, опрос государства - это неправильно? Возможно, мне нужна очередь буферов, которая записывает изменения состояния для опроса? Я пока не знаю.

0 голосов
/ 21 июля 2011

Флаг, указывающий, что игра закончилась, должен учитывать различные значения, указывающие, почему игра закончилась.Когда игрок 1 проигрывает, флаг обновляется, чтобы указать конфискацию.Затем, когда игрок 2 опрашивает, чтобы получить статус, ему сообщают о конфискации.

...