从昨晚开始,我一直在寻找答案,但似乎找不到遇到完全相同问题的人。类似但不是。我正在尝试通过 stream_socket_client 连接到 Apples APNS。我在 LAMP 环境中工作,并打开了 2195 端口。我的 errorString 说(权限被拒绝)。我的麻烦是找到发布了很多关于此错误的信息的人。我从错误报告中得到的警告是警告:stream_socket_client():无法连接到 ssl://gateway.sandbox.push.apple.com:2195(权限被拒绝)
至于好东西。我写了一个类来处理这个推送通知。这是设置连接的未完成方法。
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);
}
对我来说,这看起来是对的,但很明显,这是不对的。