#php #ios #sockets #ssl
#php #iOS #сокеты #ssl
Вопрос:
Я внедряю Push-уведомления iOS с помощью PHP, и последние пару часов я боролся с этой ошибкой stream_socket_client(): Unable to set private key file
.
Я уже сталкивался с различными связанными проблемами в SO, но пока мне ничего не помогло.
В любом случае я сделал интересное открытие.
Это мой код:
$context = stream_context_create();
stream_context_set_option($context, 'ssl', 'local_cert', $this->sslPem);
stream_context_set_option($context, 'ssl', 'passphrase', $this->passPhrase);
$this->apnsConnection = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', $error,
$errorString, 60, STREAM_CLIENT_CONNECT, $context);
var_dump($this->apnsConnection);
Выводит:
stream_socket_client(): Unable to set private key file
Но в тот момент, когда я удаляю протокол ( ssl://
) из адреса сокета для подключения, он успешно подключается.
$this->apnsConnection = stream_socket_client('gateway.sandbox.push.apple.com:2195', $error,
$errorString, 60, STREAM_CLIENT_CONNECT, $context);
var_dump($this->apnsConnection);
Выводит:
resource(93, stream)
Как и почему это происходит таким образом?