带Parse的iOS:用户互相跟踪

时间:2015-06-23 22:47:35

标签: ios parse-platform push-notification cllocationmanager

请建议最有效的方法来实现不同的用户在地图上相互跟踪,这样每个用户都可以看到其他人当前的位置,他们可以看到他的。 例如:如果一个用户移动,其他用户立即看到他的新位置,反之亦然。如果用户移动并且新用户出现在他附近,则会跟踪他们。 我想用Parse作为后端。

我尝试了在didUpdateUserLocation上保存新位置然后在后台运行查询的方法,配置为myQuery.whereKey("location", nearGeoPoint: currentGeoPoint, withinKilometers: 0.5)

它有效,但显然使用了大量带宽,因为即使用户位置的微小变化也会触发对Parse的查询(我看到iPhone状态栏上的互联网活动指示器一直在工作)。 所以我觉得它可以更有效率。

我应该使用推送通知吗? 如果是这样,一般的实施是什么?

非常感谢!

1 个答案:

答案 0 :(得分:1)

如果您想实时监控位置变化,那么这当然需要与远程服务器进行大量的交互。虽然Parse可能是或可能不是此任务的良好后端,但您应该记住,如果您使用的是免费计划,则每秒有30个API请求限制(在这种情况下可能很容易超出此限制)你有多个用户)。

限制对重要位置更改的更新可能是合理的妥协,如documentation中所述。在这里,当用户移动约500米时,您将获得一个新位置,但当您想亲自跟随用户时,这当然可能是一个缺点。

使用推送通知向其他用户通知用户的位置更改可能更有效:

  1. 一旦用户更改,就会向关注者发送推送通知 她/他的位置。这意味着每个位置都有一个请求 变化。
  2. 更新其他用户的位置更改 位置变化。在这里,您将对每个位置提出两个请求 变化。
  3. 使用1,即使您不在移动中,您仍然可以从其他用户那里获得更新。请注意,这些请求是针对设备计算的,而不是针对Parse的。即Parse包括在请求限制中发送推送通知。