自從昨晚我一直在尋找答案,但它似乎找不到任何人有完全相同的問題。類似但不是。我試圖通過stream_socket_client連接到Apples APNS。我在LAMP環境中工作並打開端口2195。我的errorString說(權限被拒絕)。我的麻煩是找到發佈了關於這個錯誤的很多信息的人。我從錯誤報告得到警告警告:stream_socket_client():無法連接到SSL://gateway.sandbox.push.apple.com:2195(拒絕)PHP IOS推送通知(權限被拒絕)
至於好東東。我寫了一個類來處理這個推送通知。這是設置連接的不受干擾的方法。
public function setConnection() {
$apnsHost = 'gateway.sandbox.push.apple.com';
$apnsPort = 2195;
$apnsCert = '../model/apns-dev.pem';
$streamContext = stream_context_create();
stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert);
stream_context_set_option($streamContext, 'ssl', 'passphrase', "********");
stream_context_set_option($streamContext, 'ssl', 'verify_peer', true);
$apns = stream_socket_client('ssl://'.$apnsHost.':'. $apnsPort, $error, $errorString, 20, STREAM_CLIENT_CONNECT , $streamContext);
}
對我來說這看起來很正確,但很明顯,這是不對的。
這實際上是openssl的服務器問題,我認爲。我改變了一些配置,現在它可以工作。感謝您的高舉。哦,不要使用verify_peer選項。 – 2012-04-05 18:54:02
@TimLieberman您在服務器上所做的更改,請在此處填寫,以便我也可以檢查我的配置。謝謝 – Ron 2013-09-03 07:30:04
@Ron我不記得問題是什麼或我們如何解決這個問題。我很抱歉,當我發現時我應該更新這個問題。 – 2013-09-20 13:38:09