2

簡単な質問があります。Apple プッシュ通知サービスの場合、Apple サーバーにプッシュ通知を送信する独自​​のサーバーが必要ですよね?

通常の Web ホスティング アカウントで単純な PHP スクリプトを使用してこれを行うことはできますか?それとも、完全な管理者アクセス権を持つ専用サーバーが必要ですか?

これが PHP で可能である場合、誰かがこれを始めるのに役立ついくつかのサンプルを教えてくれますか? 現時点では、クライアント側の部分を実装するのに問題はないと確信していますが、サーバー側はまだ謎のままです...

ありがとうございました!

フロリアン

4

2 に答える 2

1

ほとんどの場合、サーバーへの接続を開いたままにしておくことができる限り、おそらく制限付きのホスティング アカウントでこれを行うことができます。サンプルコード:

http://code.google.com/p/php-apns/

また、一部の企業は、特にプッシュ ホスティングを支援するサービスを開始していることにも注意してください (投稿は中立に保ち、名前は言及しません。どのサービスが実行されているかはまだわかりません)。

于 2009-06-30T06:38:05.137 に答える
1

APNS の主な問題はポートです

非常に多くのプロバイダーが 2195 ポートを開けません

最初はそれに集中してから、ホストプロバイダーに行きます

これが私が試したコードですが、デバイス通知を取得できない問題が1つあります

やあ 、

私は次のコード(PHP)を試しました

$apnsHost = 'gateway.sandbox.push.apple.com';
$apnsPort = 2195;
$apnsCert = 'apple_push_notification_production.pem';

$streamContext = stream_context_create();
stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert);

$apns = stream_socket_client('ssl://' . $apnsHost . ':' . $apnsPort, $error, $errorString, 2, STREAM_CLIENT_CONNECT, $streamContext);
if($apns)
{
    echo "Connection Established<br/>";
    $deviceToken = '**********';//masked

    $body = array();
    $body['aps'] = array(’alert’ => "test message");
    //$body['aps']['badge'] = 1;

    $payload = json_encode($body);


    $apnsMessage = chr(0) . pack("n",32) . pack('H*', str_replace(' ', '', $deviceToken)) . pack("n",strlen($payload)) . $payload;
    print "sending message :" . $apnsMessage . "<br/>";
    print "sending payload :" . $payload . "<br/>";
    fwrite($apns, $apnsMessage);

}
else
{   
    echo "Connection Failed";

    echo $errorString;
    echo $error;
}
socket_close($apns);
fclose($apns);  

応答は、接続が確立されました。 \u2019alert\u2019":"テスト メッセージ"}}

しかし、通知を受け取ることができません

助けはありますか?

于 2009-09-30T11:16:29.870 に答える