首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >由于内部错误,防火墙消息传递偶尔失败。

由于内部错误,防火墙消息传递偶尔失败。
EN

Stack Overflow用户
提问于 2020-08-12 17:58:13
回答 1查看 2.6K关注 0票数 3

本周,我在通过iOS库向我的Node.js设备发送消息时,收到了很多内部错误(代码是相同的,相同的库版本等等)。

它很难调试,因为有时它可以工作。当我设置一个for循环来发送10条消息时,我的设备将得到3-4。

代码语言:javascript
复制
FirebaseMessagingError: Internal error encountered.
>      at FirebaseMessagingError.FirebaseError [as constructor] (/node_modules/firebase-admin/lib/utils/error.js:42:28)
>      at FirebaseMessagingError.PrefixedFirebaseError [as constructor] (/node_modules/firebase-admin/lib/utils/error.js:88:28)
>      at new FirebaseMessagingError (/node_modules/firebase-admin/lib/utils/error.js:254:16)
>      at Function.FirebaseMessagingError.fromServerError (/node_modules/firebase-admin/lib/utils/error.js:287:16)
>      at Object.createFirebaseError (/node_modules/firebase-admin/lib/messaging/messaging-errors.js:34:47)
>      at FirebaseMessagingRequestHandler.buildSendResponse (/node_modules/firebase-admin/lib/messaging/messaging-api-request.js:119:47)
>      at /node_modules/firebase-admin/lib/messaging/messaging-api-request.js:94:30
>      at Array.map (<anonymous>)
>      at /node_modules/firebase-admin/lib/messaging/messaging-api-request.js:93:30
>      at processTicksAndRejections (internal/process/task_queues.js:97:5) {
>    errorInfo: {
>      code: 'messaging/internal-error',
>      message: 'Internal error encountered.'
>    },
>    codePrefix: 'messaging'
>  } 

我试着改变了密码,但还是会出错。

代码非常简单

代码语言:javascript
复制
import * as admin from 'firebase-admin'
admin.initializeApp()
async function sendPushNotification(
  tokens: string[],
  title: string,
  body: string
): Promise<admin.messaging.BatchResponse> {
  console.log('sending %s to %d devices', body, tokens.length)
  const message = {
    notification: {
      title: title,
      body: body,
    },
    tokens: tokens,
    apns: {
      payload: {
        aps: {
          sound: 'default',
        },
      },
    },
  }
  return admin.messaging().sendMulticast(message)
}
EN

回答 1

Stack Overflow用户

发布于 2020-08-14 01:13:07

我也遇到了同样的问题: node.js firebase向iOS发送通知有时会在500/ISE中失败。

这似乎是iOS特有的,或者至少是更常见的,因为在安卓开发期间,我从来没有遇到过这个问题。我联系了Firebase支持部门,下面是他们说的话:

内部服务器错误通常是由于超时造成的。一些小问题是无法避免的,这就是为什么我们建议开发人员实现指数后退重试机制。有关重试后和指数回退的更多信息,可以参考此StackOverflow discussion

在任何情况下,在我这边建立一些重试支持似乎是个好主意。我以前没有使用过它,但是我喜欢npm上的鸡尾酒模块的外观。我计划使用在他们的自述模型开始时给出的retryWithBreaker示例,只是退避尝试和断路器设置得更高,可能分别为5和20。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63382257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档