簡體   English   中英

在移至EC2實例后,APNS推送不起作用,也沒有“失敗”

[英]APNS push not working, and not 'failing', after moving to EC2 instance

因此,我將應用程序移至EC2實例,Apple Push Notification Service停止工作。 我使用的是相同的證書,相同的腳本,所有內容。

  • 我已在EC2實例的安全組中打開端口2195。
  • 從EC2實例開始,telnet gateway.push.apple.com 2195可以正常工作
  • 我的腳本沒有收到錯誤...一切都結束了,即使fwrite返回true ...但是,我沒有收到推送。

注意事項。

  • 我的EC2實例是通過https訪問的,而我的舊服務器是http,但是該腳本將在本地運行,並且與Apache無關,所以我不明白為什么這很重要。 但是,也許是這樣,所以我告訴您:D

我的劇本:

$streamContext = stream_context_create();
stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert);
$ssl = 'ssl://' . $apnsHost . ':' . $apnsPort;
$apns = stream_socket_client($ssl, $error, $errorString, 30, STREAM_CLIENT_CONNECT, $streamContext);
if($apns == false){
    echo "Error: $errorString";
    return false;
}
$payload['aps'] = array('alert' => $message, 'badge'=>$badge, 'sound' => 'default');
$payload = json_encode($payload);

$apnsMessage = chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $device_id)) . chr(0) . chr(strlen($payload)) . $payload;
if(fwrite($apns, $apnsMessage)){
    return true;
}
return false;

我已經檢查了所有變量,它們都已設置。

任何幫助將不勝感激。 這讓我瘋狂:P

原來我提供了錯誤的設備ID。 數據庫是不同的,並且我存儲的東西很差。 :(

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM