Поддержка проектов Android / PHP / MySQL - синхронизация приложений сервера и телефона - PullRequest
2 голосов
/ 23 февраля 2011

Я работаю над сольным проектом, используя вышеупомянутые технологии. Цель состоит в том, чтобы создать игру-викторину для Android. Вопросы создаются «мастером викторины» онлайн и отправляются в базу данных MySQL. Затем они извлекаются приложением Android. Я установил связь между телефоном и сервером, используя PHP, с передачей данных в формате JSON.

Я хочу, чтобы у каждого вопроса было заранее выделенное время, на которое пользователь должен ответить, и по истечении этого времени приложение для Android предотвращает ответ на вопрос. Время выбирается мастером теста и отправляется в базу данных вместе с остальной информацией о тесте.

Поскольку не все могут одновременно загрузить опросник с сервера на свой телефон, существуют проблемы, связанные с обеспечением того, чтобы кто-то не получил больше времени для ответа на вопрос, чем другой. Насколько это возможно, я хочу синхронизировать всех. Будет трудно убедиться, что у всех есть точно в одно и то же время, но я бы согласился на то, что люди не смогут отложить получение теста и затем получить полные 30 секунд (или что-то еще). Чтобы это было справедливо, обратный отсчет должен начаться после того, как мастер запустит тест.

Я изо всех сил пытаюсь найти способ преодоления этой проблемы. У меня настроена базовая система клиент-сервер, и я не могу придумать, как сервер отслеживает «оставшееся время», а затем отправляет на телефон номер с указанием оставшегося времени.

Извините за эссе, надеюсь, у кого-то есть идея! Это было бы очень ценно! :)

Всего наилучшего,

J

1 Ответ

1 голос
/ 23 февраля 2011

Возможно, вы могли бы заставить каждое пользовательское устройство отслеживать, насколько быстро они ответили на вопрос, а затем сравнивать время ответа после отправки ответа.Например: сервер отправляет телефону вопрос и сообщает, что существует 30-секундное ограничение по времени.Как только пользователь просматривает вопрос, на его телефоне запускается таймер.Тогда скажите, что им потребовалось ... 14,79 секунд, чтобы ответить правильно.Телефон отправлял информацию, в которой говорилось, сколько времени занял каждый пользователь, а затем сравнивал их, чтобы увидеть, кто первым ответил на вопрос, а кто все ответил в срок.Эта техника может не обеспечивать идеальную синхронизацию игры-викторины со всеми подключенными устройствами, но она должна поддерживать честность игры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...