【发布时间】:2016-11-04 17:55:55
【问题描述】:
我有一个 node.js 项目,用于应用程序的后端,我必须向 android 和 ios 发送推送通知,问题是,APNS 有时会在尝试发送通知时给我一个错误 500。
这是通常的反应:
{ sent: [],
failed: [ { device: '<device_id>',
status: '500',
response: { reason: 'InternalServerError' } } ]
我读到如果你一次发送太多,APNS 可以拒绝连接,问题是我通常不会发送那么多,比如每秒最多 1 个通知。
我使用 node-apn,这里是发送通知的代码。
function sendIosNotification(deviceTokens,body,data,musico) {
var notification = new apn.Notification();
if (musico) {
notification.topic = "<name_goes_here>.musico";
} else {
notification.topic = "<name_goes_here>.cliente";
}
notification.alert = body;
notification.badge = 1;
notification.sound = "dong.aiff";
notification.payload = data;
apnProvider.send(notification, deviceTokens)
.then( (response) => {
console.log(response);
console.log(response.failed);
});
}
它可以工作,我将它安装在测试服务器上,但是当我将它放置一夜之间时,第二天它只会给我错误 500。它通常通过重新启动节点服务器来修复自己,但这可以t 发生在生产中。我能做些什么来解决这个问题吗?是 APNS 问题还是我正在做的事情?
编辑:我正在使用这个 npm 包https://www.npmjs.com/package/apn
【问题讨论】:
-
有同样的问题
-
也许你已经修好了?
-
它一直在发生,我似乎无法找到导致它的原因。因为那个项目有点死了,我从来没有修复它,我稍后再检查一下,看看我能找到什么,如果你找到了,我将永远感激不尽。
-
另外,我只是意识到我没有说我使用的是什么 NPM 包。我用的是npmjs.com/package/apn,你们用的是同一个包吗?
标签: node.js apple-push-notifications