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

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

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

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

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

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

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

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

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


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

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


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

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

Войти через центр авторизации
Похожие вопросы