2012-06-09 3 views
1

Я использую модуль apn (https://github.com/argon/node-apn) для отправки push-уведомлений на iPhone от NodeJS.Модуль NodeJS APN не может найти файл сертификата на Ubuntu

Мой код отлично работает на моей машине разработки (Mac OSX) и успешно выводит уведомления через шлюз Sandbox Apple (gateway.sandbox.push.apple.com), но когда я перемещаю его на промежуточный сервер (который работаешь Ubuntu) толкающие уведомления завершается с сообщением:

Error: ENOENT, no such file or directory 'apns-dev-cert.pem' 

Я настройка NodeJS APN объекта как таковые:

var options = { 
    cert: "apns-dev-cert.pem",   
    key: "apns-key.pem",    
    passphrase: null, 
    gateway: "gateway.sandbox.push.apple.com",    
    port: 2195,       
    enhanced: true,      
    errorCallback: undefined,      
    cacheLength: 5         
}; 

на моем развитии Mac OSX машины, сертификат установлен в брелоке. Из моего ограниченного понимания Ubuntu эквивалент должен был скопировать файл сертификата в/etc/ssl/certs. Я попытался сделать это, а также изменив путь к «/etc/ssl/certs/apn-dev-cert.pem» в моем коде NodeJS, но появляется такое же сообщение об ошибке.

Любые идеи?

+0

Сохраните свои файлы pem, где вы сохранили вышеуказанный исходный файл и попробуйте !!!! –

ответ

3

Я много боролся с этой проблемой, пока не понял, что не понял, как модуль fs читает файлы. По-видимому, он читает их из каталога, в котором вы начали процесс узла. Таким образом, путь к вашим файлам .pem должен относиться к тому, где вы это делаете.

Возможно, вы захотите check out__dirname тоже, который может make it easier to specify your paths.

Смежные вопросы