elasticsearch,gps,scalability,Mobile,Meteor,elasticsearch,Gps,Scalability" /> elasticsearch,gps,scalability,Mobile,Meteor,elasticsearch,Gps,Scalability" />

Mobile 流星上的Tinder应用程序

Mobile 流星上的Tinder应用程序,mobile,meteor,elasticsearch,gps,scalability,Mobile,Meteor,elasticsearch,Gps,Scalability,我正在构建一个“通用tinder”移动应用程序,在这里我必须找到我身边的人(如100米、1公里等) 你们能告诉我我走的方向是否正确吗? 我正在使用弹性搜索来检查距离,这真的很酷,有800个用户,它可以在3毫秒内计算出半径在100米以下的人。 问题在于:将用户的位置与meteor服务器同步,然后与服务器ElasticSearch服务器同步。 在每个客户端上,我观察手机的GPS位置,每当它发生变化时,我调用一个服务器方法来更新mongo数据库,并向ElasticSearch服务器发送更新请求以更新那

我正在构建一个“通用tinder”移动应用程序,在这里我必须找到我身边的人(如100米、1公里等)
你们能告诉我我走的方向是否正确吗?
我正在使用弹性搜索来检查距离,这真的很酷,有800个用户,它可以在3毫秒内计算出半径在100米以下的人。

问题在于:将用户的位置与meteor服务器同步,然后与服务器ElasticSearch服务器同步。
在每个客户端上,我观察手机的GPS位置,每当它发生变化时,我调用一个服务器方法来更新mongo数据库,并向ElasticSearch服务器发送更新请求以更新那里的位置 (我正在使用精度为3m的GeoHash)
我担心可伸缩性问题。
1.客户端是否应直接将其位置发送到ElasticSearch服务器?
如果是,如何对其进行身份验证?
2.在移动客户端应用程序上,我应该关注位置的每一次变化还是编写一些计时算法?
2.关于如何构建这种关系客户端-服务器,您还有其他方法吗?

谢谢!我真的需要你们的帮助,伙计们

我的意见:

  • 不,首先通过Meteor方法将位置发送给MongoDB是最好的
  • 绝对不要关注每一个变化。我推荐一种计时算法,每5分钟检查一次(除非你在飞机上,否则你能在5分钟内走多远?)
  • 专业开发人员使用一种叫做。你可以想象这样做:a)等待1分钟,检查位置变化, b) 如果没有变化,等待2分钟并检查, c) 如果没有变化,等待4分钟并检查, d) 如果没有变化,等待8分钟并检查, e) 好吧,你明白了。如果需要,您可以设置最大16分钟。 请注意,这是什么