2015-06-23 2 views
0

Пожалуйста, предложите наиболее эффективный подход для реализации различных пользователей, отслеживающих друг друга на карте, чтобы каждый пользователь мог видеть другие текущие местоположения, и они могут видеть его. Например: если один пользователь перемещается, другие сразу видят его новое местоположение и наоборот. Если пользователь перемещается и появляются новые пользователи поблизости, они отслеживаются. Я хотел бы использовать Parse в качестве основы для этого.iOS с Parse: пользователи, отслеживающие друг друга

Я попробовал подход сохранения нового местоположения на didUpdateUserLocation, а затем выполнения запроса в фоновом режиме, выполненный в виде myQuery.whereKey("location", nearGeoPoint: currentGeoPoint, withinKilometers: 0.5)

Это работает, но по-видимому, использует большой пропускной способности, так как даже небольшое изменение местоположения пользователя вызывает запрос к Parse (и я вижу, что индикатор активности в Интернете на панели состояния iPhone работает все время). У меня такое чувство, что это может быть более эффективным.

Должен ли я использовать push-уведомления вместо этого? Если да, то какова будет реализация в целом?

Большое спасибо!

+0

Определить 'kinda' works – Wain

+0

@Wain, defined. – user1307346

ответ

1

Если вы хотите отслеживать изменения местоположения в реальном времени, это, конечно же, потребует значительного взаимодействия с удаленным сервером. Хотя Parse может или не может быть хорошим бэкэнд для этой задачи, вы должны иметь в виду, что если вы используете бесплатный план, у вас есть ограничение в 30 запросов API/секунду (и это может быть легко преодолено в этом случае, когда у вас несколько пользователей).

Ограничение обновлений до Значительное Изменения местоположения могут быть разумным компромиссом, как описано в documentation. Здесь вы получите новое место, когда пользователь переместит ~ 500 м, но это, конечно же, может быть недостатком, когда вы хотите буквально следовать за пользователем лично.

Использование уведомления толчка для информирования других пользователей об изменениях местоположения пользователя может быть более эффективным:

  1. отправить уведомление толчка к последователям когда пользователь изменяет ее/его местоположение. Это означало бы один запрос для каждого местоположения изменить.
  2. изменение местоположения других пользователей при изменении вашего собственного изменений местоположения. Здесь у вас будет два запроса для каждого местоположения. изменить.

Используя 1, вы все равно получите обновления от других пользователей, даже если вы не находитесь в движении. Обратите внимание, что эти запросы учитываются для устройства, а не для Parse. То есть Parse включает отправку push-уведомлений в листе запроса.

+0

Привет, пожалуйста, спасибо за отзыв. Действительно, я знаю ограничения на бесплатную подписку на Parse. Что я хотел бы понять, могу ли я использовать Parse's SaveInBackgroundWithBlock и findObjectsInBackgroundWithBlock (для запроса) или отправлять уведомления? – user1307346

+0

отредактировал мой ответ – tilo

Смежные вопросы