无法从PHP连接到apns

时间:2011-09-27 12:57:30

标签: php sockets ssl stream apple-push-notifications

我无法从我的生产机器连接苹果apns,它是一个vps托管。

  1. 我问了托管技术协助,他们说他们没有阻止任何端口上的传出连接,并且日志没有显示这个问题,他们不知道是什么原因造成的,所以没有帮助。
  2. 这适用于我的本地开发机器,iPhone会收到通知。
  3. extension=php_openssl.dll已在两台计算机上的php.ini文件中启用。
  4. 两台机器上的
  5. telnet给出了一个黑屏,而不是像我在这里的某些线程上看到的那样。
  6. 我正在使用的代码是:

    $streamContext = stream_context_create();
    stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert);
    $apns = stream_socket_client('ssl://' . $apnsHost . ':' . $apnsPort, $error, $errorString, 10, STREAM_CLIENT_CONNECT, $streamContext);
    $apnsMessage = chr(0) . chr(0) . chr(32) . pack('H*', $deviceToken) . chr(0) . chr(strlen($payload)) . $payload;
    fwrite($apns, $apnsMessage);
    fclose($apns);
    

    我得到的错误是:

    Warning: stream_socket_client(): SSL: crypto enabling timeout in test.php on line 116
    
    Warning: stream_socket_client(): Failed to enable crypto in test.php on line 116
    
    Warning: stream_socket_client(): unable to connect to ssl://gateway.sandbox.push.apple.com:2195 (Unknown error) in test.php on line 116
    
    Warning: fwrite() expects parameter 1 to be resource, boolean given in test.php on line 118
    
    Warning: fclose() expects parameter 1 to be resource, boolean given in test.php on line 119
    

    最后2个错误是给定的,因为连接失败但前3个我无法解决。

    任何帮助都将被批准:)

0 个答案:

没有答案