В контексте серверной части, поддерживающей приложение для iPhone, я пытаюсь управлять push-уведомлениями Apple в рельсах.Для этого я использую красивый гем под названием grocer
, интерфейс которого кажется очень простым и интуитивно понятным.Я думаю, что это самый простой тестовый пример, который воспроизводит проблему, с которой я имею дело:
pusher = Grocer.pusher certificate: "/path/to/cert.pem"
notification = Grocer::Notification.new device_token: 'the device token', alert: 'My test', badge: 1
pusher.push(notification)
Однако я получаю следующую ошибку:
OpenSSL::SSL::SSLError (SSL_connect returned=1 errno=0 state=SSLv3/TLS write finished: tlsv1 alert internal error)
Это сообщение об ошибке не говорит слишком много о природе проблемы: что ее вызывает, почему и т. Д.
Файл pem был сгенерирован внешним разработчиком из p12
и, кажется, это правильно (срок действия истек, часть сертификата и закрытый ключ).Он заверяет, что сертификат в порядке и что он может отправлять уведомления.Токен устройства, кажется, тоже в порядке и состоит из шестнадцатеричной строки из 64 символов (отрывков).
Итак, немного поискав, просмотрел pem и поговорил с разработчиком внешнего интерфейса, ярешил поделиться этой проблемой с надеждой, что кто-то уже сталкивался с подобной ситуацией и мог бы дать мне совет