1

では、WEBサービスと通信するiPhoneアプリを作成したいと思います。しかし、私にははっきりしない2つのポイントがあります。

  1. ユーザーがアプリのボタンを押すと、アクションがWebサービスに通知され、Webサービスは対応するユーザーにプッシュ通知を送信します。いいえから。通知を送信する必要のあるユーザーの数が多い可能性があるため、iPhoneアプリに応答(OK /エラー)を送信してから、通知の送信を続行することを考えていました。つまり、PHPスクリプトはリクエストを受け入れて応答し、応答後、iPhoneアプリがサービスを待つ必要がないように、通知の送信を続行する必要があります。

  2. このサービスでは、多くのユーザーにプッシュ通知を送信する必要があります。そして私はPHPでWebサービスを書いています。では、PHPのより効果的な代替手段はありますか?それとも、サービスを実装するための最良の方法ですか?

ありがとう。

4

3 に答える 3

2

#1の場合、次のようなことができます...

電話アプリに次のような方法があります。

- (void) send_to_server {
    NSString *urlString = [NSString stringWithFormat:@"http://weburl.com/?variable=%@", variable];

    NSURLRequest *theRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:urlString] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
    NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];

    if (theConnection) {
        receivedData = [NSMutableData data];

        if ([[NSString stringWithFormat:@"%@", receivedData] isEqualToString:@"Success"]){
            //Do something here
        }else{
            //Do something else here
        }
    }
}

PHPでは、次のようなことができます。

<?php
$variable = $_GET['variable'];
//do what you need to do here...
//Put things into queue or what-not
if ($success){
    echo "Success";
}else{
    echo "Failure";
}
?>

更新しました

<?php
if (isset($_GET['variable']){
    echo "Success";
    $variable = $_GET['variable'];
    //do what you need to do here...
}else{
    echo "Failure";
}
?>

他の電話にプッシュ通知を送信することに関しては、私はその部分を行う方法がわかりません。しかし、PHPには効率の問題はないと思います。

于 2012-05-01T12:40:56.803 に答える
1

重要な問題は、ユーザーにすぐに応答してから、非同期で通知を送信するなどの他の作業を実行することだと思います。

Gearmanなどのある種のキューシステムを使用することをお勧めします(Rabbitなどの代替手段はたくさんありますが)。インターフェースを取得してGearmanキューにジョブを配置し、Gearmanワーカーを作成して、キューから通知タスクを取得できます。

この種の作業はPHPで実行できますが、実行する場合は、Gearman Manager PHPライブラリを使用することをお勧めします。これは、PHPが長時間実行されるプロセスに最適な言語ではないためです。Gearman Managerはスクリプトを開始および停止し、PHPでのワーカーの記述を容易にします。

http://gearman.org/?id=gearman_php_extension https://github.com/brianlmoon/GearmanManager

于 2012-05-01T12:29:55.250 に答える
1
  1. 賢いアイデアのように聞こえます。応答を送信して同じスレッドで通知の処理を続行するか、サーバーで通知を実行するためにジョブをキューに入れます。

  2. Webサービスを実行するためのさまざまな言語の長所について議論する人はたくさんいます。PHPに最も慣れていて、パフォーマンス要件がそれほど大きくない場合は、おそらくそれが最善の選択肢です。

于 2012-05-01T12:31:50.237 に答える