【问题标题】:APNS push not working, and not 'failing', after moving to EC2 instance移动到 EC2 实例后,APNS 推送不起作用,也不是“失败”
【发布时间】:2013-05-21 05:03:27
【问题描述】:

因此,我将应用程序移至 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

【问题讨论】:

    标签: php https amazon-ec2 port apple-push-notifications


    【解决方案1】:

    原来我给出的设备 ID 错误。数据库不同,我存储的东西很差。 :(

    【讨论】:

      猜你喜欢
      • 2021-09-17
      • 1970-01-01
      • 2014-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多