1

我有一个测验机器人,这个人需要在 10 秒内回答。我正在使用机器人框架,我在其中测量机器人发送消息时的时间戳,并在对话框内收到用户回答时记录另一个时间戳。然而,我觉得这种方法是有缺陷的,因为它没有考虑网络延迟。如果我没记错的话,发送消息时的时间戳是服务器时间戳,接收消息时的时间戳也是服务器接收消息的时间。总时差 = 服务器的时间戳 + 发送延迟 + 用户延迟 + 接收延迟 - 服务器在接收时的时间戳是公式如果我没记错的话。

我对用户实施 10 秒限制的正确方法是什么

4

2 回答 2

1

我建议您保持您的方法,否则您的测验将很容易破解。
让我描述一下。如果您以某种方式从客户端发送时间戳,用户将能够轻松地编辑该时间戳(甚至使用现代浏览器中的检查器工具),然后向您发送假时间戳。因此,他将能够轻松获胜。

您也可以通过从客户端发送时间戳并将其与服务器端消息接收的时间戳进行比较来组合这两种方法。如果差异不够大(假设它没有被黑客入侵),则使用客户端的时间戳,否则 - 使用服务器端的时间戳并惩罚用户:)

于 2017-01-10T13:28:21.173 回答
-1

如果您不想考虑服务器时间戳+发送延迟+用户延迟的总时间,则可以考虑消息传递给用户的时间。所以现在您可以计算消息传递和用户响应之间的时间戳。
请点击以下链接: https ://developers.facebook.com/docs/messenger-platform/webhook-reference/message-delivered

于 2017-02-24T07:30:42.340 回答