5

我正在尝试与 APN 建立连接。它根本不会连接。我得到以下变化:

  apn Socket error occurred +609ms { [Error: socket hang up] code: 'ECONNRESET' }

apn Connection error occurred before TLS Handshake +0ms

这是存折通行证。不是应用程序。我正在使用 Passbook 证书。

我的代码是:

var apns = require('apn');

var root = process.cwd();

var fs = require('fs');

var options = {
    cert: root + '/certs/new/cert.pem',                 /* Certificate file path */
    certData: null,                   /* String or Buffer containing certificate data, if supplied uses this instead of cert file path */
    key:  root + '/certs/new/key.pem',                  /* Key file path */
    keyData: null,                    /* String or Buffer containing key data, as certData */
    passphrase: 'secret',                 /* A passphrase for the Key file */
    ca: null,                         /* String or Buffer of CA data to use for the TLS connection */
    gateway: 'gateway.sandbox.push.apple.com',/* gateway address */
    port: 2195,                       /* gateway port */
    enhanced: true,                   /* enable enhanced format */
    errorCallback: undefined,         /* Callback when error occurs function(err,notification) */
    cacheLength: 100                  /* Number of notifications to cache for error purposes */
};

var apnsConnection = new apns.Connection(options);

var myDevice = new apns.Device('token');

var note = new apns.Notification();

note.payload = {};
note.device = myDevice;

apnsConnection.sendNotification(note);
4

3 回答 3

1

看来我混淆了我的证书。我确定我早些时候尝试过交换它们,但显然没有。


cert:您的应用程序证书。
关键:苹果的 WWDR

于 2012-12-01T13:58:11.493 回答
0

你在代理后面吗?这可能是问题(至少在我的情况下经常如此)

于 2012-11-30T13:55:03.820 回答
0

尝试以下结构:手动读取.certand文件并将它们分别设置为and属性。这是核心:.keycertDatakeyData

var key = root + '/certs/new/key.pem'
var cert = root + '/certs/new/cert.pem';

var certData = fs.readFileSync(cert, encoding='ascii');
var keyData = fs.readFileSync(key, encoding='ascii');

var apnsConnection = new apns.Connection({
    certData: certData,
    keyData: keyData,
    gateway: 'gateway.sandbox.push.apple.com',
    port: 2195,
    ... /* other configs of course */
});
于 2012-11-30T15:11:35.527 回答