web-dev-qa-db-ja.com

サーバープッシュ通知の実装

グループ、

自分のサーバープッシュ通知サーバーをAndroid/IOSアプリに実装する予定です。そのため、私のアプリケーションサーバー(NodeJを介して実装される場合があります)は、その通知サーバーに接続して、メッセージをデバイスにプッシュします。だから私はインターネットをサーフィンして、以下の既存の解決策を見つけました。

Googleクラウドメッセージング

Appleプッシュ通知サービス

Firefox OSプッシュ通知

Microsoftプッシュ通知サービス


Q1)
それぞれのサイト。彼らは通知サーバーの使い方だけを知らせていました。ただし、サーバープッシュの実装方法に関する情報が必要です。

教えてください;彼らは以下のいずれかに従っていますか?

投票

ロングポーリング

ストリーミング

サーバー送信イベント

TLS、SSLまたはTCPクライアントとのソケット接続

XMPP


Q2)

以下の2つの方法は、私のアプリは実行されていませんが、彼らはまだAPPに通知を送ることができますか?そんなことがあるものか?

Appleプッシュ通知サービス

Firefox OSプッシュ通知


Q3)

Firefox osのプッシュ通知。彼らは、バッテリー寿命を節約するためにキープアライブを回避していると通知しました。私の質問は、キープアライブなしでは、接続がまだ生きているかどうかを判断する方法ですか?


Q4)

これらすべて(GCM/APNS/FireFox OS)の実装はサーバー側のプッシュのみであり、クライアントからのリクエストを受け付けません。私は正しいですか?
それでも、私のサーバーはプッシュメッセージ以外の何百万ものデバイスリクエストを処理する必要がありますよね?
自分の通知サーバーとクライアントデバイス間でWebSocketを使用する場合、アプリケーションサーバーとクライアント間でWebSocket接続をもう1つ維持して、デバイスからのリクエストを受信する必要がありますか?

18

インターネット上で利用できる良い記事があります、あなたは答えを得るでしょうあなたが通過することができます。しかし、私はあなたの質問に答えようとしています:答えは主にAndroidおよびgoogleサーバーに当てはまります。

Ans1)彼らはあなたのコードで彼らのライブラリクラスを使うことによってあなたが使わなければならない彼らのリスナーを持っています。プッシュについて気にする必要はありません。サーバーサーバーにメッセージを送信する必要がありますサーバーにメッセージをプッシュします。彼らはOAuthを使用しています。プロトコルに関しては、CCSとXMPPを使用する2つの方法があります。 CCSはXMPPを認証済みトランスポート層として使用するだけなので、ほとんどのXMPPライブラリを使用して接続を管理できます。デバイスに通知を送信するには、Androidアプリに送信するアプリとサーバーコードを記述します。メッセージの送信はコードによってのみ行われます。残りはGoogleサーバーによって処理されますGCMケース。詳細はこのリンクで確認できます

http://developer.Android.com/google/gcm/server.html

また、セキュリティの問題について

googleクラウドメッセージングセキュリティhttps://groups.google.com/forum/#!topic/Android-gcm/M-EevBitbhQ

回答2)アプリが実行されていない場合は可能です。ブロードキャストリスナーのコードを記述する必要があるため、デバイスも通知を受信できます。バックグラウンドではサーバーをリッスンしており、メッセージパケットが存在する場合は常に通知としてメッセージを受信します。 Androidは、気にする必要のないサービスを提供しています。作業を簡単にするライブラリクラスを使用して、これらのリソースを使用するだけでよく、アプリが実行されていない場合は、リソースも記述できます。通知を受信します。明らかに、アプリを受信させるリスナーがいます。このリンクの「メッセージを受信する」セクションを確認してください

http://developer.Android.com/google/gcm/client.html

Ans 3)-Firefox OSのプッシュ通知は、アプリの起動という1つの目的のために設計されています。データは扱いません。このリンクをチェック

https://hacks.mozilla.org/2013/07/dont-miss-out-on-the-real-time-fun-use-firefox-os-Push-notifications/

Ans 4)-いいえ、ユーザーからのリクエストも受け付けません。他の人にはわかりませんが、GCMならそれで十分です。 「メッセージを送る」にチェックを入れてください

http://developer.Android.com/google/gcm/client.html

これがあなたの質問に役立つことを願っています。

9
ajitksharma

Apple Push通知は、アプリではなくiOSによって制御されます。したがって、これはアプリが実行されていなくても利用できます。通知を送信するには、Appleサーバーへのssl接続を開き、プッシュ通知ペイロードを送信します。iOSがすべてを処理するため、ポーリングなどはありません。

独自のサーバーを作成する場合は、プッシュ通知を使用できません。独自のサーバーからメッセージをプルする必要があるため、バッテリーを消耗します。 Apple APNSはiOSによって制御され、時々Applesサーバーに接続し、デバイス上のすべてのアプリのすべてのプッシュ通知を収集します。

8
rckoenes

技術的な詳細はさておき、Amazon SNSなどのさまざまなサードパーティソリューションがあります。 100万あたりの通知は約0.50ドルです。独自のサーバー/サービスを実装するよりもこの小さなコスト(時間、コスト、信頼性)を比較すると、プロジェクトの他の側面に時間を費やす必要があると思います。

1
twb