1

ディストリビューションで APNS 通知を行うために、php で次のコードを使用しています。私のコードは私のサーバーでは正常に動作しますが、サーバーをパパに移行すると、アプリは通知を停止しfailed to connect : 0 、私のコードは次のように応答します

$message=stripslashes($_POST['message']);
$sql='insert into message set message = "'.$message.'"';
$res=mysql_query($sql);
$query="select deviceId from pushnotification";
$result=mysql_query($query);
while($row=mysql_fetch_array($result)){
//$deviceToken = '76dcc65ccd155180ff56a15a539173137e38c9dde363d648e5f17343e0940c8d';
$deviceToken = $row['deviceId'];
$passphrase = '******';
$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', 'ck.pem');
stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase);
$fp = stream_socket_client('ssl://gateway.push.apple.com:2195', $err,$errstr, 60,       STREAM_CLIENT_CONNECT, $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;
 $resultmsg = fwrite($fp, $msg, strlen($msg));
 if (!$resultmsg)
 $msg='Message not delivered' . PHP_EOL;
 else
 $msg='Message successfully delivered' . PHP_EOL;
 fclose($fp);

どんな助けでも感謝しますありがとう

4

1 に答える 1

0

非常にホッチポッチを実行した後、アプリIDの秘密鍵とssl証明書を再度作成します。そして、それはうまくいきました。アプリのキーと証明書がすべてでした。コードは問題ありません。

于 2013-09-18T11:33:01.123 に答える