我在从 Node.js 服务器调用 APNS 通知时遇到问题。这是我返回的错误

问题描述 投票:0回答:2

{ 错误 [ERR_HTTP2_STREAM_CANCEL]:挂起的流已被取消(原因是:无法获取本地颁发者证书)

node.js apple-push-notifications
2个回答
0
投票

将您的 Node 应用程序更新到最新的稳定版本。


0
投票

我遇到了类似的问题,并设法使用以下方法处理错误:

const http2 = require('http2');
const fs = require('fs');

function APICall() {
  return new Promise(function(resolve, reject) {
    const client = http2.connect('http://localhost:8443', {
        // Uncomment and add path to your certificate if needed
        // ca: fs.readFileSync('localhost-cert.pem')
    });

    client.on('error', (err) => {
        console.error('client error', err);
        reject('Client connection error');
    });

    const req = client.request({ ':path': '/' });

    client.on('connect', () => console.log('Connected to server'));

    req.on('error', (error) => {
        console.error('Request error', error);
        reject('Could not connect with server');
    });

    req.setEncoding('utf8');
    let data = '';

    req.on('data', (chunk) => { data += chunk; });
    
    req.on('end', () => {
        console.log('Request ended');
        console.log(`Response data:\n${data}`);
        resolve(data);
    });
 });
}

说明: HTTP/2 模块:我们使用 http2 模块发出 HTTP/2 请求。

错误处理: client.on('error', ...) 处理连接错误。 req.on('error', ...) 处理请求错误。

数据处理: 响应数据通过数据事件以块的形式收集。 一旦响应结束,累积的数据就解决了。

© www.soinside.com 2019 - 2024. All rights reserved.