我有一个测验机器人,他需要在10秒内回答。我正在使用机器人框架,我测量机器人发送消息时的时间戳,并在对话框内收到用户的答案时记录另一个时间戳。然而,我觉得这种方法存在缺陷,因为它没有考虑网络延迟。如果我没有弄错的话,发送消息时的时间戳是服务器时间戳和接收消息时的时间戳也是服务器接收消息的时间。 总时差=服务器的时间戳+发送延迟+用户延迟+接收延迟 - 接收时服务器的时间戳是公式如果我没有弄错。
我对用户强制执行10秒约束的正确方法是什么
答案 0 :(得分:1)
我建议你保持你的方法,否则你的测验将很容易被破解 让我来形容一下。如果您以某种方式从客户端发送时间戳,用户将能够轻松编辑该时间戳(甚至使用现代浏览器中的检查器工具),然后向您发送假时间戳。所以,他将能够轻松获胜。
此外,您可以通过从客户端发送时间戳并将其与服务器端的消息接收时间戳进行比较来组合这两种方法。如果差异不够大(假设它没有被黑客入侵),那么使用客户端的时间戳,否则 - 使用服务器端时间戳并惩罚用户:)