这是我在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
答案 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进行进一步通信。