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

问题描述:

这是我对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()); 

我正在开发针对Android的使用SNS聊天应用程序(它也将推送通知的应用程序的现有IOS对应)

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

+0

不推荐从设备发布到设备,不应该完成。它带来了一些风险,客户可以通过通知群集他人的设备。 –

+0

@RohanDubal那么你对聊天应用程序有什么建议? – shruti

+0

如果您想编写聊天应用程序,您可以使用自己的后端,并开发自己的协议或根据现有的协议开发一些基于XMPP的协议。您可以使用SNS将离线通知从您的后端发送到设备。 – Krum

SNS是一种发布订阅机制,其中w讨厌的人被发布到一个话题被所有在场的订户接收。

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

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

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

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

从这个

除此之外,如果你确实需要一个端点的消息,你可以尝试,

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

其中endpointArn是设备端点。

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