【发布时间】:2016-04-30 16:39:34
【问题描述】:
我正在尝试将失败的通知存储在 db 中,例如客户端无法访问 Internet。这将使我能够从 backgroundService 检查是否缺少通知,然后从 backgroundService 创建它。
因此,我的Azure App Service Mobile 上有以下内容:
var notStat = await hub.SendWindowsNativeNotificationAsync(wnsToast, tag);
telemetry.TrackTrace("failure : " + notStat.Failure + " | Results : " + notStat.Results + " | State : " + notStat.State + " | Success : " + notStat.Success + " | trackingID : " + notStat.TrackingId + ");
代码 sn-p 是为了测试来自客户端的影响,但无论我做什么,生成的日志都只是消息是enqueued。
问题
那么如何检测失败的通知呢?
结论
总结对已接受答案的讨论:
发送通知后,NotificationId 和其他相关数据将存储在单独的表中。
收到通知的客户端上的事件随后将向服务器发送一条消息,说明已收到通知。然后从表中删除该条目。
客户端未收到的通知将通过background task 找到。这将是每次background task 触发时,例如每 6 小时,background task 将检索所有丢失的通知。这使background task 能够创建相关通知,并且用户不会错过任何通知。
【问题讨论】:
标签: azure push-notification azure-notificationhub azure-mobile-services wns