【问题标题】:sns push notification publish to a single devicesns 推送通知发布到单个设备
【发布时间】:2017-05-05 09:54:37
【问题描述】:

这是我在 SNS 官方网站上找到的用于发布到主题的代码

String msg = "My text published to SNS topic with email endpoint";
PublishRequest publishRequest = new PublishRequest(topicArn, msg);
PublishResult publishResult = snsClient.publish(publishRequest);
System.out.println("MessageId - " + publishResult.getMessageId());

我正在使用 sns 为 android 开发一个聊天应用程序(它还会将通知推送到应用程序的现有 ios 对应项)

如果我想直接发布到单个设备,我可以给设备的“ApplicationEndPointArn”而不是 topicArn

【问题讨论】:

  • 不建议从设备发布到设备,也不应该这样做。这会带来一些风险,并且客户可能会向其他人的设备发送通知。
  • @RohanDubal 那么你对聊天应用有什么建议??
  • 如果您想编写一个聊天应用程序,您可以使用自己的后端并开发自己的协议或基于现有协议(如 XMPP)开发一些东西。您可以使用 SNS 从后端向设备发送离线通知。

标签: java android amazon-web-services push-notification amazon-sns


【解决方案1】:

SNS 旨在将通知服务与应用层分离。

我们可以创建一个主题并将移动端点添加为订阅者。

当消息发布到主题时,所有订阅者都会收到通知。

除此之外,如果您真的需要单端点消息传递,您可以尝试,

PublishRequest publishRequest = new PublishRequest();
publishRequest.setTargetArn(endpointArn);
publishRequest.setMessage("SOME MESSAGE");
snsClient.publish(publishRequest)

endpointArn 是设备端点。

但请确保在设备在 SNS 中注册时保留此设备端点,并使用返回的相同 EndpointArn 进行进一步通信。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多