asp.net チャット アプリケーションを作成したいのですが、次の 2 つの選択肢があります。
- TCP/IP 接続を使用して、おしゃべりの間のピア ツー ピア接続を作成します。
- データベースを使用してチャット テキストを保存し、Ajax を使用してチャッター間の通信を作成します。
どれが良い解決策のように見えますか、または解決策がありますか?
開発中のネイティブ アプリケーションに埋め込む Web ビューを提供する場合とは要件が異なるため、チャットをブラウザーで使用するつもりであると想定しています。
解決策 1 は実際にはオプションではありません。少なくとも java/flash/plugins がなければ、ブラウザーで直接 p2p 接続を確立することはできません。
データベースは必ずしも必要ではありませんが、解決策 2 は機能します。チャットログを保存したり、オフライン メッセージを提供したりしたくない場合は、最近のメッセージをサーバーにキャッシュするだけで済みます。メッセージが数分以上前のものである場合、そのメッセージにはもはや関心がないと見なすことができます。あなたのニーズに応じて。
もう 1 つの非常に興味深いソリューションは、websockets です。Websockets は基本的にブラウザとのライブ通信用のインターフェイスを提供するため、クライアントは ajax を使用してメッセージをポーリングする必要はありませんが、サーバーへの接続を開いたままにするだけで、利用可能になった更新 (= 新しいメッセージ) を提供できます。
WebSocket はまだ普遍的にサポートされていないため (現在、Firefox、Chrome、およびモバイル デバイスは一般的に非常に優れたサポートを提供しています)、おそらく古いブラウザーのフォールバックとして ajax インターフェースをセットアップする必要があります。それ以外では、WebSockets が最良の選択肢だと思います。