我已经浏览了node-push-notification-sns-transport的文档我已经在我的代码中实现了,第一次工作正常,但第二次它向我显示平台已配置
,然后我必须切断执行并重建并重新运行,然后它工作正常。我哪里出错了?
sns = (req, res) => {
push.addTransport(new SnsTransport({
aws: {
accessKeyId: cache.get('AMAZON_ACCESS_KEY'),
secretAccessKey: cache.get('AMAZON_SECRET_KEY'),
region: cache.get('AMAZON_REGION'),
apiVersions: {
sns: '2010-03-31'
}
},
platformAppArn: 'arn:aws:sns:us-xxx-1:XXXXXX:app/GCM/Test'
}));
// Send a push notification via SNS.
push.send('sns', 'device_token', {
alert: 'how is it going?'
}, (err, data) => {
if (err) {
res.send(err, req);
} else {
res.send(data);
}
});
}
最佳答案
你使用的是express框架吗?我发现 (req, res) => {
语法很熟悉。
如果是这样,您只需通过 AWS SNS 配置一次推送通知。只需在处理程序函数之外配置您的传输,确保它只运行一次。
push.addTransport(new SnsTransport({
aws: {
accessKeyId: cache.get('AMAZON_ACCESS_KEY'),
secretAccessKey: cache.get('AMAZON_SECRET_KEY'),
region: cache.get('AMAZON_REGION'),
apiVersions: {
sns: '2010-03-31'
}
},
platformAppArn: 'arn:aws:sns:us-xxx-1:XXXXXX:app/GCM/Test'
}));
sns = (req, res) => {
// Send a push notification via SNS.
push.send('sns', 'device_token', {
alert: 'how is it going?'
}, (err, data) => {
if (err) {
res.send(err, req);
} else {
res.send(data);
}
});
}
关于javascript - 使用 NodeJS 进行 SNS 推送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57864045/