我尝试了"easy ASPN"http://www.easyapns.com在我的服务器上。。
这是连接苹果服务器的php代码:
$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', 'apns.pem');
$fp = stream_socket_client('ssl://gateway.push.apple.com:2195', $error, $errorString, 100, (STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT), $ctx);
我确保在php配置中启用openssl。。
服务器管理员告诉我他打开了端口:21962196
但是这个php代码总是返回:
Failed to connect to APNS: 110 Connection timed out.
我试着从外壳测试到苹果服务器的连接
我写过:
telnet gateway.sandbox.push.apple.com 2195
但它回来了:
-bash: telnet: command not found
我真的不知道如何解决这个问题。。。
我看到两件事可能会导致您的问题。首先你需要发送你的密码:
stream_context_set_option($ctx, 'ssl', 'passphrase', 'your_passphrase');
此外,您应该点击反馈URL:
ssl://feedback.sandbox.push.apple.com:2196
(URL的沙盒部分是用于dev的,如果您正在访问您的prod实例,请将其删除)
希望能有所帮助。