【发布时间】:2017-01-20 17:18:59
【问题描述】:
假设用户 A 在上午 10 点在设备 A 上订阅事件源推送通知,并在上午 11 点在设备 B 上订阅事件源推送而不取消订阅。如果我的后端发送推送消息,两个设备都会收到推送消息?我实际上只是想将消息发送到用户订阅的最新设备。有没有办法做到这一点?
【问题讨论】:
标签: push-notification ibm-mobilefirst
假设用户 A 在上午 10 点在设备 A 上订阅事件源推送通知,并在上午 11 点在设备 B 上订阅事件源推送而不取消订阅。如果我的后端发送推送消息,两个设备都会收到推送消息?我实际上只是想将消息发送到用户订阅的最新设备。有没有办法做到这一点?
【问题讨论】:
标签: push-notification ibm-mobilefirst
就像 Idan 建议的那样,您可以检查数据库中的推送订阅。订阅具有关联的时间戳条目。有了这个,您可以为用户确定最新的。
然后您可以使用WL.Server.notifyDevice(userSubscription, device, options) 或WL.Server.notifyDeviceSubscription(deviceSubscription, notificationOptions) 来定位特定设备。
【讨论】:
如果用户订阅了两个不同的事件源,那么是的,用户将在两个事件源中收到通知...
没有内置机制可以防止(同一用户的)“重复”订阅,因此也许您可以在服务器上实施某种 cron 作业来检查数据库中的订阅表并检查是否存在没有重复订阅。如果发现重复订阅,请删除旧订阅。
【讨论】: