Nodejs'de (AWS Lambda) arka ucu olan bir E-Ticaret İOS uygulaması oluşturdum. Bir kullanıcı oturum açtığında / oturum açtığında, uygulama bildirim göndermek için oluşturduğum bir SNS Konusuna abone olur ve push belirtecini ve cihaz arn'sini db'de saklar. Şimdi, mağazaya yeni bir öğe eklediğimizde, SNS Konusuna abone olan tüm kullanıcılara push bildirimi göndermek istiyorum. Şu anda, bildirim göndermek için tüm kullanıcıları dB'den alıyorum ve kullanıcılar arasında push belirtecini almak ve kullanıcılara tek tek bildirim göndermek için döngü yapıyorum, bu çok maliyetli bir süreç ve API çok fazla zaman aldı.
Şimdi ben istiyorum yapmak için isabet SNS konu Lambda ve pass vücudun bildirim için bu konu ve bu SNS konu olacak bildirim göndermek için tüm kullanıcılar kim sahip olunan bir Konu. Onu aradım ama bir çözüm bulamıyorum.
Bildirim göndermek için yaptığım kod şu şekildedir
await Promise.all(targetArns.map(async (item, index) => {
const publishNotificationParams = {
"TargetArn": item,
"Message": JSON.stringify({
"default": JSON.stringify({
"category" : title,
"alert" : {
"title" : title,
"body" : 'New product is launced',
"data" : product
},
"badge" : 1,
"sound" : "chime.aiff"
}),
"APNS_SANDBOX": JSON.stringify(params),
"APNS": JSON.stringify(params)
}),
"MessageStructure": "json"
};
var publishTextPromise = sns.publish(publishNotificationParams).promise();
publishTextPromise.then(
function(data) {
console.log(`Message ${publishNotificationParams.Message} sent to the topic ${publishNotificationParams.TargetArn}`);
}).catch(
function(err) {
console.error(err, err.stack);
});
}));
Ancak bunun için dB'den her kullanıcıyı son nokta arn'sini almalı ve ardından yinelemeyle bildirim göndermeliyim.
SNS konusunu çağırmak istiyorum bildirim gövdesini iletin ve SNS, bu SNS konusuna abone olan her kullanıcıya bildirim gönderir.
Bunu yapıyorum çünkü her kullanıcıyı dB'den almak ve ardından bildirim göndermek için maliyetten tasarruf etmek istiyorum