2012-11-30 25 views
5

Tôi đang cố kết nối với APN. Nó chỉ đơn giản là sẽ không kết nối. Tôi nhận được các biến thể của:Không thể nhận nút-nút để kết nối

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

apn Connection error occurred before TLS Handshake +0ms 

này là dành cho một đường chuyền Passbook. Không phải ứng dụng. Tôi đang sử dụng chứng chỉ Sổ tiết kiệm.

Mã của tôi là:

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); 

Trả lời

1

Dường như tôi đã trộn lẫn các chứng chỉ của mình. Tôi chắc chắn rằng tôi đã cố gắng trao đổi chúng trước đó nhưng rõ ràng là không.


cert: cert ứng dụng của bạn.
khóa: WWDR của Apple

0

là bạn sau một proxy? đó có thể là vấn đề (ít nhất là nó thường là trong trường hợp của tôi)

+1

No. Tôi đã thử trên cả máy cục bộ và Heroku của tôi. – Simon

+0

sau đó xin lỗi, không dễ dàng để giúp bạn ở đây ;-( – hereandnow78

+0

không phải lo lắng, cảm ơn – Simon

0

Hãy thử cấu trúc sau: Đọc file .cert.key bằng tay và đặt chúng như certDatakeyData tài sản, respectivelly. Đây là cốt lõi:

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 */ 
}); 
+0

Thật không may tôi đã thử điều đó và nó không hoạt động. – Simon

Các vấn đề liên quan