2013-03-04 56 views
2

我試圖使用來實現蘋果推送通知php代碼。這是我的代碼APN PHP代碼給出警告:stream_socket_client()[function.stream插槽客戶端]:無法連接到SSL://gateway.sandbox.push.apple.com:2195

$deviceToken = 'My device token'; 
$passphrase = ''; 
$message = 'My first push notification!'; 

//////////////////////////////////////////////////////////////////////////////// 

$ctx = stream_context_create(); 
stream_context_set_option($ctx, 'ssl', 'local_cert', 'apns-dev-cert.pem'); 
stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase); 

$fp = stream_socket_client(
    'ssl://gateway.sandbox.push.apple.com:2195', $err, 
    $errstr, 120, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx); 

if (!$fp) 
    exit("Failed to connect: $err $errstr" . PHP_EOL); 

echo 'Connected to APNS' . PHP_EOL; 

$body['aps'] = array(
    'alert' => $message, 
    'sound' => 'default' 
    ); 
$payload = json_encode($body); 
$msg = chr(0) . pack('n', 32) . pack('H*', $deviceToken) . pack('n', strlen($payload)) . $payload; 

$result = fwrite($fp, $msg, strlen($msg)); 

if (!$result) 
    echo 'Message not delivered' . PHP_EOL; 
else 
    echo 'Message successfully delivered' . PHP_EOL; 

fclose($fp); 

證書.pem文件與文件位於同一目錄中。 這段代碼在我的本地機器上運行良好。我正在使用MAMP。我在我的設備上收到通知。

但是,當我試圖在服務器上,它不工作,並給了一個錯誤。

警告:stream_socket_client()[function.stream插槽客戶端]: 無法連接到SSL:在 /家2195 (連接被拒絕)://gateway.sandbox.push.apple.com /nextgen/public_html/ApplicationGenerator/appointmentportal/iosapp/SimplePush/simplepush.php 上線14連接失敗:111拒絕連接

如果證書文件是錯誤的,它是如何將我的本地服務器上運行?

我沒有得到任何出路這一點。你們能幫我嗎?

+0

我相信你應該過這:http://stackoverflow.com/a/16274256/362310 – 2013-04-29 08:32:48

+0

是你的問題解決了嗎? – Rajneesh071 2013-06-15 10:03:10

回答

4

假設你的服務器有正確的端口打開,「連接被拒絕」通常暗示了一個無效的.PEM文件或不正確的密碼。確保當您打開.pem文件,標題看起來是這樣的:

Bag Attributes 
friendlyName: Apple Development IOS Push Services: com.yourapp.app 
localKeyID: A8 77 BC 0C 2E 81 10 6E 78 9F XX XX XX XX XX XX 

主題=/UID = com.yourapp.app/CN =蘋果IOS開發推送服務:com.yourapp.app/ C = FR issuer =/C = US/O = Apple Inc./OU=Apple全球開發者關係/ CN = Apple全球開發者關係認證中心

後面跟着一個關鍵字,像這樣你的私鑰:

Bag Attributes 
friendlyName: Joe Black 
localKeyID: A8 77 BC 0C 2E 81 10 6E 78 9F XX XX XX XX XX XX XX XX 
Key Attributes: <No Attributes> 

我建議你您還可以刪除密碼以減少潛在的錯誤來源。