通过GCM与android和nodejs进行地理定位的推送通知

我打算创build一个Android应用程序(将来的iOS),如果在该用户的当前位置内创build了一个事件(例如:半径2km),将会向附近的用户发送推送通知。

目前我所想的是有android应用程序连接到nodejs服务器和mongodb存储创build的事件。

但是,我一直在试图找出一旦创build事件,通知附近用户的最佳方式是什么和什么。 这是我目前的做法:

  1. 聆听MongoDB的变化(每当有人创build新事件时),
  2. 发送请求以获取所有用户的位置及其指定半径的警报
  3. 查询并向指定半径范围内的用户发送推送通知。 (通过Google云消息传递)

通过此方法,创build事件后input指定半径的用户将无法接收推送通知。

有没有其他更容易或更好的方法来实现这一目标?

只是我的两分钱:

这取决于你打算创build多less“事件”,以及这些“事件”是如何创build的以及谁创build这些“事件”,但是我会去解决这个问题:

  • 将所有“事件”存储在Google Firebase数据库中
  • Google Firebase数据库会自动将所有“事件”与安装了Android / iOS应用程序的所有设备同步
  • 让应用程序本身决定,如果一个或多个“事件”在警戒半径范围内
  • 让应用程序通知用户
  • 如果您的应用程序用户也创build了“事件”, 则根本不需要任何服务器
  • 如果您的pipe理员创build了“事件”,则可能需要一个小型的Web应用程序将“事件”提供给Google Firebase数据库并将其删除

对我来说,开放的问题是:

  • 将创build多less“事件”? 几十,几千,十亿…?
  • 谁创造了“事件”? 用户? pipe理员?
  • 这些“事件”是否会过时? 如果是,谁从数据库中删除过期的“事件”?