我们正在为 Android 和 iOS 开发应用程序。我们使用 AWS SNS Mobile Push 将消息推送到 GCM 和 APNS。后端是 PHP,因此它使用 AWS PHP SDK。
到目前为止,我们的系统已为每个用户保存 1 个端点 ARN。然后,我们直接向该端点 ARN 广播移动推送消息。
问题:
如果用户在多个设备上登录我们的应用程序并且没有在所有设备上收到推送通知,那就会很奇怪。所以 - 我们必须做出一些改变。
在 AWS Mobile Push 中,如何处理“一个用户、多个设备(以及可能的多个平台)”的概念?
我们的系统是否必须维护用户到 EndpointARN 的一对多关联(即开始为每个用户保存多个 EndpointARN,以便我们可以按顺序将消息推送到所有这些端点)?
或者我应该研究移动推送提供的“主题”概念(我在这里很困惑 - 是否有人为每个用户使用一个主题,然后将消息推送到该主题本身? )..
最后 - 我想这是一个额外的问题 - 使用 PHP AWS SDK 的人同时包含 APNS
和 GCM
属性是否正常在 Message
有效负载数组中?我们没有跟踪“每个用户使用哪种类型的设备”。我们刚刚为每个用户保存了一个端点 ARN。我想,当我们向端点推送消息时,我们的想法是覆盖所有平台基础(APNS、APNS_SANDBOX、GCM)。
我对“一个用户使用多个设备”主题进行了大量搜索:使用 AWS SNS 进行移动推送,但实际上结果毫无帮助。
请帮忙:(
谢谢!
最佳答案
一旦您发送SNS Push消息,您将获得成功或失败的原因。 您能否检查您的日志并分享以确定确切的问题。
云观察: SNS 发布有关已发布消息数、成功通知数、失败通知数和已发布数据大小的 Cloudwatch 指标。指标可根据每个应用程序使用。您可以通过 AWS 管理控制台或 CloudWatch API 访问 Cloudwatch 指标。
直接寻址: 直接寻址允许您将通知直接传递到单个端点,而不是向主题的所有订阅者发送相同的消息。如果您想向每个收件人发送精确有针对性的消息,这非常有用。当您向 SNS 注册设备 token 时,SNS 会创建与该 token 对应的端点。您可以像发布到主题一样发布到 token 端点。您可以直接发布通知文本,也可以发布利用特定于平台的功能(例如更新应用程序的徽章计数)的特定于平台的负载。直接寻址目前仅适用于推送通知端点。
官方文档,“创建主题时,Amazon SNS 将为该主题分配唯一的 ARN(Amazon 资源名称)。
关于amazon-web-services - AWS Mobile Push 与可能登录到多个设备的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35214680/