2011-07-21 95 views
0

假设我们有以下情形:状态变化更新后(由其他用户),但投票

  1. 2个用户都准备就绪信号播放,Rails应用程序接收它,并开始游戏
  2. 之一2个用户发出“放弃”通过立即AJAX(IM假设这是不可能的,以防止这种情况,amirite?)
  3. 由当时的其他用户投票找出一个游戏是否已经开始,比赛已经结束,比分已更新
  4. 该用户感到困惑

我不太清楚在这里做什么。任何人都可以给我一些想法吗?


好吧,我想出了我做错了什么。 (不能自己回答,因为我的代表太低)

当用户轮询以确定他/她的游戏是否已经开始,并接收移动等时,我检查“游戏进行中”和“用户=用户轮询“属性来确定要回应的内容。但这是错误的,因为一旦结束,这个逻辑就无法找到相关的游戏来检索数据并将其返还给用户。

现在我想到的是,添加“已结束游戏已被轮询”作为游戏对象的属性(以及通过关系玩对象),所以如果游戏结束但未被轮询,用户将会收到一次,然后回复确认。然后游戏将不会再次轮询。

回答

0

表示游戏已经结束应允许说明为什么比赛结束了不同的值的标志。当玩家1没收时,该标志被更新以指示没收。然后当玩家2投票取得状态时,他被告知没收。

+0

但我的模型怎么知道甚至看它。我的意思是,如果我只是在每轮投票中拔出最近的游戏,那么用户每次投票都会收到历史数据。 – Max

+0

你能澄清吗?我不了解你的问题和背景。 –

+0

因此,添加“结束游戏已被调查”的国家集? – Max

0

好吧,我想清楚我做错了什么。

当用户调查,以找出是否他/她的比赛已经开始,并接收和移动等,我检查“游戏进展”和“用户=用户投票”属性找出回应什么。但这是错误的,因为一旦结束,这个逻辑就无法找到相关的游戏来检索数据并将其返还给用户。

现在我想到的是,添加“已结束游戏已被轮询”作为游戏对象的属性(以及通过关系玩对象),所以如果游戏结束但未被轮询,用户将会收到一次,然后回复确认。然后游戏将不会再次轮询。

但是,现在有一个新的问题,如什么,如果有多个状态的变化民调在两者之间。

也许轮询状态是错误的?也许我需要一个缓冲队列来记录状态变化以便进行轮询?我还不知道。