sns推送通知发布到单个设备

时间:2017-05-05 09:54:38

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

这是我在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

2 个答案:

答案 0 :(得分:0)

SNS是一种发布订阅机制,其中发布到主题的任何内容都会被该时间点的所有订阅者接收。

您无法发布到设备端点。基本上SNS可以用于广播应用,任何人都可以向订阅该主题的任何人广播,就像whatsapp群聊一样,但你不能将它用于一对一聊天

答案 1 :(得分:0)

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

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

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

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

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

其中endpointArn是设备端点。

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