我在试着连接APNs。它根本无法连接。我得到了以下的变体:
apn Socket error occurred +609ms { [Error: socket hang up] code: 'ECONNRESET' }和
apn Connection error occurred before TLS Handshake +0ms这是一张通行证。不是一个应用程序。我用的是存折证书。
我的代码是:
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);发布于 2012-12-01 21:58:11
看起来我把我的证书弄混了。我确定我之前试过交换它们,但显然没有。
证书:您的应用程序证书。
key:苹果的WWDR
发布于 2012-11-30 21:55:04
你在代理背后吗?这可能就是问题所在(至少在我的案例中经常是这样)
发布于 2012-11-30 23:11:36
尝试以下结构:手动读取.cert和.key文件,并将它们分别设置为certData和keyData属性。这里是核心:
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 */
});https://stackoverflow.com/questions/13646591
复制相似问题