Ajax 更新后(由其他用户)但在轮询前的状态更改

Ajax 更新后(由其他用户)但在轮询前的状态更改,ajax,web-applications,polling,Ajax,Web Applications,Polling,假设我们有以下场景: 2个用户都发出准备好玩的信号,rails应用程序接收到该信号并开始游戏 两个用户中的一个立即通过ajax发出罚单,我想这是不可能阻止的,amirite? 当其他用户投票确定游戏是否已经开始时,游戏已经结束并更新分数 该用户感到困惑 我不太清楚在这里该做什么。有人能给我一些想法吗 好吧,我知道我做错了什么。我还不能自我回答,因为我的代表太低了 当用户轮询以确定他/她的游戏是否已开始,并接收移动等信息时,我会检查“正在进行的游戏”和“用户=用户轮询”属性以确定响应内容。但这是错

假设我们有以下场景:

2个用户都发出准备好玩的信号,rails应用程序接收到该信号并开始游戏 两个用户中的一个立即通过ajax发出罚单,我想这是不可能阻止的,amirite? 当其他用户投票确定游戏是否已经开始时,游戏已经结束并更新分数 该用户感到困惑 我不太清楚在这里该做什么。有人能给我一些想法吗


好吧,我知道我做错了什么。我还不能自我回答,因为我的代表太低了

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


我现在想的是,添加结束游戏已经作为游戏对象的一个属性被轮询好了,通过关系玩对象,所以如果游戏结束但没有被轮询,用户将收到它一次,然后响应确认。然后将不再轮询游戏。

表示游戏已结束的标志应允许不同的值指示游戏结束的原因。当玩家1没收时,该标志将更新以指示没收。然后,当玩家2投票获得状态时,他被告知被没收。

好吧,我知道我做错了什么

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

我现在想的是,添加结束游戏已经作为游戏对象的一个属性被轮询好了,通过关系玩对象,所以如果游戏结束但没有被轮询,用户将收到它一次,然后响应确认。那么比赛就不会再进行投票了

然而,现在有一个新的问题,比如在两次民意测验之间,如果有多个州的变化,该怎么办


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

但是我的模特怎么知道看它呢。我的意思是,如果我只是在每次投票时拿出最新的游戏,那么用户每次投票时都会收到历史数据。你能澄清一下吗?我不理解你的问题和上下文。那么添加结束游戏已被轮询到状态集?你有在服务器上维护的游戏状态表或对象吗?如果是这样,当player1被没收时,游戏状态可能会以没收的原因代码或类似的内容结束。我不知道你的数据结构是什么样子的,但是这些概念应该适用于它。实际上,我刚刚知道如何做,以及我的模型需要重新设计的地方。我已经知道你说的了,但那不起作用。