向多个设备发送SNS推送通知



我需要使用aws-sns-javascript向多个设备发送推送通知当我创建createPlatformEndpoint我可以只添加一个设备令牌但我需要向多个设备发送通知比如数组令牌

创建平台应用程序

var params = {
Attributes: {
'PlatformCredential': 'My API KEY'
},
Name: 'dist-ba-dist',
Platform: 'GCM'
};
sns.createPlatformApplication(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else     console.log(data);           // successful response
});

创建平台端点

var params = {
PlatformApplicationArn:`data.PlatformApplicationArn` , 
Token: 'My Device Token',
CustomUserData: 'STRING_VALUE'
};
sns.createPlatformEndpoint(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else     console.log(data);           // successful response
});

发送消息到Amazon SNS主题

var payload = {
default: 'Hello World',
GCM: {
notification: {
body: "Sample message",
title: "Hello World"
}
}
};
console.log("endpointArn", data.EndpointArn)
payload.GCM = JSON.stringify(payload.GCM);
payload = JSON.stringify(payload);
console.log('payload', payload)
console.log('sending push');
sns.publish({
Message: payload,
MessageStructure: 'json',
TargetArn: data.EndpointArn,
}, function (err, data) {
if (err) {
console.log(err.stack);
return;
}
console.log('push sent');
console.log(data);
});   

要向多个设备发送推送通知,您可以

  1. 创建一个主题,将每个端点订阅到该主题,然后发布到该主题。SNS将负责将消息传递给每个主题订阅者。如果您正在广播通知或
  2. ,则此解决方案非常有效。
  3. 为每个用户创建端点,将这些端点的arn存储在某处,然后直接发布到您希望发送通知的每个端点。

最新更新