Обмен данными с сервером, алгоритм работы, правильно ли?

Пишу приложение для отслеживания местоположения телефона.

Обмен android & mysql происходит посредством PHP скриптов

Общий принцип:

- пользователь "А" отправляет запрос на получение местоположения пользователя "В";
Данные о запросе сохраняются в mysql базе.

- приложение пользователя "В" периодически опрашивает нужную таблицу mysql базе на предмет запроса (запросил ктото местоположение или нет);

- если приложение пользователя "В" видит, что запрос от кого-либо есть, отправляет данные о местоположении (запись в таблицу mysql на сервере);

- приложение пользователя "В" периодически проверяет, поступили ли данные от пользователя "В", если да - загружает их.

Насколько в целом такая схема "правильная"?
  • Вопрос задан
  • 915 просмотров
Решения вопроса 1
chlp
@chlp
фулстек
Такой режим работы нужен, чтобы экономить батарейку и не обновлять текущее местоположение пользователя, ели это никому не нужно? Я к тому, что почему бы всем пользователям просто периодически не отсылать текущее местоположение, а по запросу сразу отдавать последнее обновленное и писать, сколько времени назад оно было получено?
В вашем случае вижу несколько возможных проблем:
1. По запросу не всегда пользователь сможет отдать текущее местоположение (или с недостаточной точностью).
2. Большое время отклика на запрос.
3. Скорее всего, вы уже учли этот момент, но все-таки напишу. В вашем алгоритме пользователь должен отправить по ответу о своем местоположении на все запросы от всех пользователей. Если почти одновременно поступят запросы на определения местоположения одного пользователя, то незачем отвечать несколько раз. Если кто-то уже запросил, а пользователь еще не ответил или ответил какое-то небольшое время назад, то можно не добавлять запрос пользователю Б.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@cardexc Автор вопроса
почему бы всем пользователям просто периодически не отсылать текущее местоположение, а по запросу сразу отдавать последнее обновленное и писать, сколько времени назад оно было получено?


хорошая идея. Так и сделаю наверное.

3. Скорее всего, вы уже учли этот момент, но все-таки напишу. В вашем алгоритме пользователь должен отправить по ответу о своем местоположении на все запросы от всех пользователей. Если почти одновременно поступят запросы на определения местоположения одного пользователя, то незачем отвечать несколько раз. Если кто-то уже запросил, а пользователь еще не ответил или ответил какое-то небольшое время назад, то можно не добавлять запрос пользователю Б.


Не учел. Спасибо за помощь!
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы