0

Ceci est le code que je trouve sur le site officiel de SNS pour publier sur un sujetsns poussent notification publient à un seul appareil

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()); 

Je développe une application de chat sur pour sns Android à l'aide (il sera également notifications push à la contrepartie ios existante de l'application)

si je veux publier sur un seul appareil directement peut-je donner « la ApplicationEndPointArn » de l'appareil au lieu de topicArn

+0

La publication d'un périphérique vers un périphérique n'est pas recommandée et ne doit pas être effectuée. Cela pose des risques et un client peut essaimer l'appareil d'une autre personne avec des notifications. –

+0

@ RohanDubal alors que suggérez-vous pour une application de chat? – shruti

+0

Si vous vouliez écrire une application de chat, vous utiliseriez votre propre back-end et développeriez votre propre protocole ou développeriez quelque chose basé sur un existant comme XMPP. Vous utiliseriez SNS pour envoyer des notifications hors ligne depuis votre backend vers l'appareil. – Krum

Répondre

0

SNS est un publier mécanisme s'abonner, où w hatever est publié sur un sujet qui est reçu par tous les abonnés présents à ce moment.

Vous ne pouvez pas publier sur un noeud final de périphérique. Le service SNS peut être utilisé pour diffuser des applications où tout le monde peut être abonné au sujet, tout comme le chat de groupe WhatsApp, mais vous ne pouvez pas l'utiliser pour un chat en tête-à-tête

0

SNS est destiné à découpler le service de notification de la couche application.

Nous pourrions créer un sujet et ajouter des points de terminaison mobiles en tant qu'abonnés.

Lorsqu'un message est publié sur le sujet, tous les abonnés sont notifiés.

En dehors de cela, si vous avez vraiment besoin de messagerie de point final unique, vous pouvez essayer,

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

où endpointArn est un point final de l'appareil. Mais assurez-vous que vous persistez ce point de terminaison de périphérique lorsque le périphérique est enregistré dans SNS et utilisez le même EndpointArn renvoyé pour une communication ultérieure.