通过GCM与android和nodejs进行地理定位的推送通知
我打算创build一个Android应用程序(将来的iOS),如果在该用户的当前位置内创build了一个事件(例如:半径2km),将会向附近的用户发送推送通知。
目前我所想的是有android应用程序连接到nodejs服务器和mongodb存储创build的事件。
但是,我一直在试图找出一旦创build事件,通知附近用户的最佳方式是什么和什么。 这是我目前的做法:
- 聆听MongoDB的变化(每当有人创build新事件时),
- 发送请求以获取所有用户的位置及其指定半径的警报
- 查询并向指定半径范围内的用户发送推送通知。 (通过Google云消息传递)
通过此方法,创build事件后input指定半径的用户将无法接收推送通知。
有没有其他更容易或更好的方法来实现这一目标?
只是我的两分钱:
这取决于你打算创build多less“事件”,以及这些“事件”是如何创build的以及谁创build这些“事件”,但是我会去解决这个问题:
- 将所有“事件”存储在Google Firebase数据库中
- Google Firebase数据库会自动将所有“事件”与安装了Android / iOS应用程序的所有设备同步
- 让应用程序本身决定,如果一个或多个“事件”在警戒半径范围内
- 让应用程序通知用户
- 如果您的应用程序用户也创build了“事件”, 则根本不需要任何服务器
- 如果您的pipe理员创build了“事件”,则可能需要一个小型的Web应用程序将“事件”提供给Google Firebase数据库并将其删除
对我来说,开放的问题是:
- 将创build多less“事件”? 几十,几千,十亿…?
- 谁创造了“事件”? 用户? pipe理员?
- 这些“事件”是否会过时? 如果是,谁从数据库中删除过期的“事件”?