iOS 推送通知:找不到有效连接

2024-01-29

我正在尝试在本地解析服务器上设置推送通知。 尝试发送推送时出现此错误:

parse-server-push-adapter APNS cannot find vaild connection for 9a86...21

(每个安装设备令牌都会重复该错误。)

有任何想法吗?

我的服务器代码:

var api = new ParseServer({
  databaseURI: databaseUri || 'mongodb://localhost:27017/dev',
  cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js',
  appId: process.env.APP_ID || 'myAppId',
  masterKey: process.env.MASTER_KEY || '',
  serverURL: process.env.SERVER_URL || 'http://localhost:1337/parse',  
  liveQuery: {
    classNames: ["Mission"]
  },
  filesAdapter: new S3Adapter(
    process.env.S3_ACCESS_KEY || '',
    process.env.S3_SECRET_KEY || '',
    process.env.S3_BUCKET || '',
    {directAccess: true}
  ),
  push: {
    ios: {
      pfx: 'certificates/development.p12',
      bundleId: 'co.example.myApp',
      production: false // Dev
    }
  }
});

我正在从我的云代码中推送:

var installationQuery = new Parse.Query(Parse.Installation);
installationQuery.containedIn('user', specificUser);
Parse.Push.send({
  where: installationQuery,
  data: {
    "alert": "Loren ipsum ",
    "id": MyCustomId
  }
}, { useMasterKey: true }, {
  success: function() {
    console.log("Push was successful!");
  },
  error: function(error) {
    console.error(error);
  }
});

导致错误的原因是安装表中有一个设备与设备上的过滤器相匹配push请求不再在 Apple 中为您的应用程序注册。当 Apple 收到向不再注册到您的应用程序的设备发出通知的请求时,它会返回该消息,指示您如果继续发生这种情况,则应该采取一些操作。

就我而言,我在安装表中注册了四个与我的设备匹配的设备push过滤器,其中两个设备不再在 Apple 中为我的应用程序注册,因此每次我推送它时,每个无效安装都会出现该错误。

我不确定为什么会发生这种情况,但我看到以下情况会导致创建新的安装记录,从而使先前的安装无效。在该设备令牌出现如此多的错误且错误之间没有成功推送后,解析服务似乎可以监视并采取行动。

  1. 用户删除并重新安装应用程序
  2. 用户更新其 iOS 版本并deviceToken值被改变。
  3. 通过更改配置设置,可以在应用程序中更新解析服务的连接 URL,而无需重新安装应用程序。

要解决错误,您只需删除与deviceToken在错误消息中

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS 推送通知:找不到有效连接 的相关文章

随机推荐