23

私は iPhone 用のチャット アプリを作成していますが、会話メッセージがどのように即座に届くのかわかりません。

このトピックに関する大量の Google の結果を読みました。また、一度:
- http://www.raywenderlich.com/3932/how-to-create-a-socket-based-iphone-app-and-server
- http://www.raywenderlich.com/3443/ apple-push-notification-services-tutorial-part-12

APNS アプローチ:
目に見えない通知が iPhone にプッシュされ、新しいメッセージを読む準備ができたことを示します。そのため、アプリは未読メッセージのリクエストを行います。そのため、新しいメッセージを手動でポーリングする代わりに、APNS がそれをサポートできるようにします。確信はないけど?

ソケット アプローチ:
データを共有するために開いているソケット接続を作成します。新しいメッセージがデータベースで見つかると、データがアプリに自動的に送信されます。しかし、IP 範囲、ファイアウォール、消費電力などについてはどうでしょうか。繰り返しますが、よくわかりません:(

ポーリングのアプローチ:
リクエストをポーリングする時間間隔を作ります。ここでは消費電力が敵です。

私の質問:
- どのアプローチが最適ですか?
- その他の提案は?
- このトピックに関する経験を持つ人々からの長所と短所が本当に必要です.

例は常に良いです。
ありがとう

4

2 に答える 2

6

あなたの主な関心事は、アプリケーションがバックグラウンドにある間に新しいメッセージを受信する方法だと思います. WhatsAppのようなアプリで通知を受け取ることができるのに、メッセンジャーアプリを一日中開いているわけではないからです。

websocketsを使用できる TCPIP ソケットよりも優れています。HTTP であるため、ファイアウォールの問題はありませんが、バッテリーを消耗するフォアグラウンドのアプリケーションとの永続的な接続が必要です。

また、バックグラウンドで実行できるのは音楽、場所、または音声 IP のみであるため、アプリケーションが開いていないとポーリングできません。これらのバックグラウンド タスクに登録して別のことを行うと、Apple がアプリを認識して拒否することに注意してください。

したがって、APNS を使用します。それがWhatsAppの機能です。

于 2012-07-02T09:08:13.660 に答える
2

チャットの目的でXMPPサーバーを使用する

http://mobile.tutsplus.com/tutorials/iphone/building-a-jabber-client-for-ios-xmpp-integration/

このリンクがお役に立てば幸いです。

于 2012-07-02T09:05:01.187 に答える