将APN从节点服务器发送到设备

时间:2017-09-12 13:27:16

标签: ios node.js express firebase-realtime-database apple-push-notifications

我有一个快速应用程序,配置为向指定的设备令牌发送通知,我能够发送和接收通知。

我的问题是,我目前通过输入设备令牌手动将通知从我的服务器发送到设备。我可以从连接到我的应用程序的firebase数据库中获取令牌。

如何为每个进行数据库更改的事件发送单个设备的令牌。我没有在数据库中分配特定用户(或者我无法弄清楚快递应用程序如何跟踪任何用户)。有没有办法我可以设法获取特定用户,获取他的令牌,然后发送所需的通知。通知内容存在于用户的DB文档中。

我可以放一个观察者/听众。或者还有其他方式。 我是APNS的新手。

P.S:我使用node-apn npm进行APNS连接。

我希望我很清楚。 谢谢!

1 个答案:

答案 0 :(得分:1)

您需要关注:

1)。一个新表“device”,用于存储用户的所有设备令牌以及以下内容:

userId
deviceType (should be enum [“android”, “ios”])
deviceId (string, id)

2)。移动应用程序端的两个api:

注册特定的移动设备 - 移动应用程序将在应用程序登录后立即发送“userId”和“deviceId”。用于检查相同“userId”和“deviceId”的记录是否存在的服务器,如果不存在则必须在“设备表”中创建一个

取消注册特定的移动设备 - 移动应用会在从应用退出时将“deviceId”发送为免费。 (这样做是因为有时2个不同的用户可以在同一设备上登录移动应用程序)后端会删除相同设备ID的记录。

最终当您收到任何要向用户发送推送的事件时,请从表中检索设备令牌并将推送发送到该令牌。