質問

チャット アプリケーションを構築するのに最適なスタックがわかりません。現在、私は主に 2 つの選択肢を考えています。

  • フェイスブックのトルネード
    • 短所:メインのチャット プロトコル xmpp は使用しませんが、pubsubhubbub を使用します
    • 長所:開発のシンプルさ (Web サーバー + Web フレームワーク) がとても気に入っています。pubsubhubbub は、プロトコルとしても xmpp よりも単純であるように見えます。そして私はPythonを知っています
  • xmpp + ボッシュ、パンジャブ、エジャバード
    • 短所:アーランはわかりません。全体的に開発は少し難しいようです
    • 長所:xmppプロトコルを使用します

チャット アプリには次のものが必要です。

  • プライベートメッセージ
  • パブリックルーム
  • 個室
  • ルームのチャット履歴 (永久ではなく、最後の n メッセージのみ)
  • HTML埋め込み
  • チャットルームへのURL

どちらのオプションもスケーラブルなようですので、それほど心配する必要はありません (アプリを amazon の ec2 で実行することも考えています)。tornado を使用して xmpp サーバーを構築するプロジェクトがあることは知っていますが、実稼働環境で使用する準備ができておらず、期限もそれほど長くありません。基本的に私の主な心配は、チャット アプリの開発に pubsubhubbub を使用するのは開発の容易さではなく、後で何らかの形で後悔することです。でも、REST が SOAP に取って代わるように、PubSubhubbub が最終的に XMPP に取って代わる可能性があるとどこかで読んだのですが、どう思いますか?

役に立ちましたか?

解決

XMPPのために行く。

ボックスのうち、ejabberdは、すべての要件をサポートしています。あなたは、任意のアーランを参照してejabberdのためのカスタムモジュールを記述する必要はありません。 そしてStrophejsで、(あなたが明らかにやっていることである)、ブラウザでのXMPPが大きいます。

XMPPを交換PubSubHubbubをについてあなたの最後の質問の場合は、それにはカウントされません。 XMPPは、両方の古い、固体オープンソースと独自の相互運用可能な実装10年にわたり、クライアントとサーバー上にあり、それが離れて行くことはありませんので、エレガントである。

そして、あなたはXMPPがために作られたものでチャットアプリケーションを研究開発をされます。

他のヒント

のFacebook Tornao doesntの使用PubSubHubbubをまったく!

XMPPのために行く、それはあなたが探しているもののために設計されています。トルネードは、そのspecicicallyため、一般的には長いポーリング要求のために設計されていませんでした。

パンジャブを使用する必要はありません、ejabbedはhttp-バインドモジュールは現在、かなり良い仕事をしません。また、あなたはアーラン、Apacheを使用してWebアプリケーションを足すときCを学習する必要はありません同じように学習する必要はありません:) <のhref = "http://github.com/superfeedr/のようなものをチェックしてください「REL = "nofollowをnoreferrer"> Aristochat のaristochat。あなたが一緒にプレイする必要があります唯一の事はあなたのXMPPサーバーとチャットルームの設定で、その後、(ブラウザで)クライアント側のためのJavascriptます。

あなたはXMPP経由で連携を必要としませんが、プロトタイプを作成し、箱から出してスケーラビリティと一緒に素早く展開するならば、<のhref = "HTTPのリフトWebフレームワークの例を見て取る://デモを。 「REL = 『nofollowをnoreferrer』タイトル= 『1ページのチャットサーバ』>コードの1ページでのチャットサーバliftweb.net/chatます。

PubSubHubbubを(プッシュ)が最初の場所でのチャットアプリケーションのためのものではなかったです。それは時々、「Web用IM」と呼ばれています。リアルタイムのためにリアルタイムルビー:私はあなたがこのスライドを通過することをお勧めigrigorikする

により、ウェブ

質問は本当にあなたが取得したいどのようにリアルタイムのですか?あなたはスピードたい場合は、XMPPは最良の選択肢である。(500msの)プッシュフィードに依存し、その方法を中継しながら。プッシュコンテンツが加入者に到達する前に4つのネットワークホップの総と、覚えています。

さらに大きなトラブルはプッシュHTTPポストに依存しています。あなたがプッシュに基づいてチャットアプリを設計してしまうと、後の段階で言う場合でも、他のデバイスに、あるいはあなたがXMPPを使用して同じコンテンツを中継しなければならないデスクトップアプリケーションなどで使用できるようにしたいです。あなたが上で負けされる他の場所はあなたのチャットアプリのユーザーは自分の好きな他のIMからログインすることは非常に難しいだろうということです。

WebSocket で REST API を使用して、パブリッシャー/サブスクライバー アーキテクチャを実装できます。

雰囲気 そして スワッガーソケット にプラグインできる優れた Java フレームワークです。 ジャージー APIをRESTしてこれを達成します。

Atmospehre の作成者である jfarcand のブログには、次のようなものがあります。 チャットアプリの例 これらのテクノロジーを使用して構築されています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top