私はアンドロイドアプリ(4.1 api 16)、javaサーバ(1.7)にバックエンドとしてtomcat 7.を追加する必要があります。アプリの新しい機能のためには、ユーザーがリアルタイムで通信できることが必要であるため、 ロングポーリングwebsocketのようなさまざまな可能性を見つけました。サーバー送信イベント。 ご意見は大変ありがとうございます。アンドロイドクライアント間のリアルタイムコミュニケーションのための最良の方法は何ですか?
答えて
WhatsAppについては、インスタントメッセンジャーがたくさんあります。私たちはAndroidが提供する最高のものを切り上げたので、あなたの好みやニーズに最も適したものを選ぶことができます。
私は個人的にはチャットメッセンジャーにとって最適なリアルタイムアプリケーションの1つとして、Firebaseを推奨します。私は以下の私の理由をリストした:
Documentation, Support, Flexibility, Scope, Reliability, Cost, Complexity
あなたはまた、以下に挙げる使用できるサードパーティ製の一部:
PubNub
PubNubあなたは、スケーラブルな開発するための70種類以上のSDKを提供リアルタイムで、データ・センターをグローバルに分散し、自動レプリケーションとフェイルオーバーを備えたデータ・ストリーム・アプリケーション。
OS:
FreeBSDのFreeBSDはのWhatsAppが上に置かれた時にオペレーティング・システムです。 カーネルサービス - プロセス管理、メモリ管理、I/Oシステム、プロセス間通信。
イチゴ腫(さらに別のWebサーバー)
のyawsはErlangのWebサーバです。 Erlangで書かれ、ErlangをApacheのPHPに似た埋め込み言語として使用しています。リアルタイム上の2人のまたは多数のユーザ間のインスタントメッセージの転送を容易に
Ejabberd(XMPP)サーバ
Ejabberd(XMPP)サーバ。ピーク時のトラフィックであっても高い信頼性と持続可能性は、WhatsApp開発者が何よりもEjabberdを選んだ理由です。 XMPPプロトコルは、セッションのサインインと再サインインを高速化するようにカスタマイズされています。
アーラン
高可用性の要件を持つ大規模なスケーラブルなソフトウェアリアルタイムシステムを構築するために使用されるプログラミング言語。ランタイムシステムには、並行性、分散性、耐障害性のサポートが組み込まれています。
PHPPHP統合については、両者をやり取りするいくつかの方法があります。 PHP Erlang Bridgeを使用してチャットをあなたのPHPコードと統合することができます。 PEB(PHP - Erlang - Bridge)はオープンソースのPHP拡張モジュールで、PHPをErlangノードとして実行します。
XMPP XMLに基づくメッセージ指向ミドルウェアの
通信プロトコル。 XMPPはリアルタイムチャットアプリケーションの場合にのみHTTPより高速です。それはネットワークのセキュリティを保証し、メッセージを転送するために使用されます。 HTML5 WebSocketsは、双方向通信を容易にする通信技術です。
データベース(Mnesia)
Mnesia DBは、データベース管理の頑丈なタスクを処理します。 Mnesiaは、ERLANGのデフォルトDBであるマルチユーザ分散型DBMSです。 Mnesiaはより迅速な要求応答を実現し、それによって全体の効率を向上させます。 「意見・ベース」ので
- 1. 何時間前の何かを得るためのMySQLの最良の方法は何ですか?
- 2. 車両検索のための最良のデータマイニング方法は何ですか?
- 3. ブラックベリーのための最良の認証方法は何ですか
- 4. モバイルアプリケーションを作成するための最良の方法は何ですか
- 5. 文書を手渡すための最良の方法は何ですか?
- 6. ビルド前テストを書くための最良の方法は何ですか
- 7. concatenting stringそれを行うための最良の方法は何ですか?
- 8. レール上にルビーサービスを置くための最良の方法は何ですか?
- 9. IOSのための最良のQRリーダーライブラリは何ですか?
- 10. 計算時間を返すための最善の方法は何ですか?
- 11. PHPで「時間」を正規化する最良の方法は何ですか?
- 12. プロジェクトの組織の最良の方法は何ですか?
- 13. C#でMongoDB Query Reportingの最良の方法は何ですか?
- 14. javascriptライブラリを最新の状態に保つための最良の方法は何ですか?
- 15. ソフトウェア/ Webアプリケーションテストの最良の方法は何ですか?
- 16. データベースベースのテストメーカーを作る最良の方法は何ですか?
- 17. 最新のWebブラウザのためにfaviconをロードする最も良い方法は何ですか?
- 18. iOSでRootViewControllerを探す最良の方法は何ですか
- 19. は、ADO.NETでのデータテーブルをソートするための最良の方法は何ですか
- 20. 手描きの幾何学図形を認識するための最良のアルゴリズムとデータを収集する最良の方法は何ですか?
- 21. grailsでサービスを扱う最良の方法は何ですか
- 22. ELM言語を使い始める最良の方法は何ですか?
- 23. PyQt 5を使い始める最良の方法は何ですか?
- 24. CakePHPとのログイン/ログアウトリンクを含める最も良い方法は何ですか?
- 25. InputStreamを監視する最良の方法は何ですか?
- 26. HTML5ウェブサイトをテストする最良の方法は何ですか?
- 27. GitHubを検索する最良の方法は何ですか?
- 28. マインドマップデータを保存する最良の方法は何ですか?
- 29. 列挙をインクリメントする最良の方法は何ですか?
- 30. fopen()を使用する最良の方法は何ですか
はおそらくクローズされますが、それは興味深い質問です。 –
も要件に依存します。通信要件がより低いレベルであれば、Firebaseを使用することをお勧めします。 –
@ShubhankGuptaクライアントは、データを交換するグループを構築できるはずです。 Firebaseは無料ではないため、オプションではありません。 – user2830405