2017-01-10 16 views
1

У меня есть бот, где человек должен ответить в течение 10 секунд. Я использую структуру бота, где я измеряю метку времени, когда бот отправляет сообщение, и я записываю другую метку времени, когда ответ пользователя получен внутри диалогового окна. Однако я считаю, что этот подход ошибочен, так как он не учитывает сетевую задержку. Временная метка при отправке сообщения, если я не ошибаюсь, - это временная метка сервера и отметка времени при получении сообщения, также время, когда сервер получил сообщение. Общая временная разница = отметка времени сервера + время задержки + пользовательская задержка + время задержки приема - метка времени сервера при получении - это формула Если я не ошибаюсь.Каков правильный способ измерения времени между сообщением бота и ответом пользователя в рамках бота?

Что такое правильный способ для меня, чтобы обеспечить соблюдение 10-секундное ограничение на пользователя

ответ

1

Я бы порекомендовал вам сохранить свой подход, в противном случае ваш тест будет простой взломать.
Опишу. Если вы каким-либо образом отправите временную метку с клиентской стороны, пользователь сможет легко отредактировать эту метку времени (даже используя инструменты инспектора в современных браузерах), а затем отправить фальшивую метку времени. Таким образом, он сможет легко выиграть.

Также вы можете комбинировать оба подхода, отправив временную метку с клиентской стороны и сравнивая ее с меткой времени приема сообщения на стороне сервера. И если разница не достаточно велика (при условии, что она не взломана), используйте временную метку на стороне клиента, иначе - используйте временную метку на стороне сервера и наказать пользователя :)

+0

поэтому в основном я должен использовать session.message.timestamp как раз и предполагают 2-5 секундной задержки для передачи – PirateApp

-1

Если вы не хотите рассматривать общее время временной отметки сервера + время задержки отправки + пользовательская задержка, вы можете подумать о времени, когда сообщение доставляется пользователю. Итак, теперь вы можете рассчитать метку времени между отправленным сообщением и ответом пользователей.
Пожалуйста, следуйте приведенным ниже ссылке: https://developers.facebook.com/docs/messenger-platform/webhook-reference/message-delivered