4

現在、IRCX AJAX チャット ベースのシステムを開発しており、サーバーとクライアントの実装に関していくつか質問があります。どんな提案も大歓迎です:

サーバ

これは Web サービスとして実装する必要がありますか?それとも Windows フォーム アプリケーションとして実装する必要がありますか? 私は Windows フォーム ベースのサーバーを開発した経験がありますが、これを Web サービスとして実装した方がよいかどうか疑問に思っています。

クライアント

現在、Web ベースのクライアントはどのように実装されていますか? また、Web ベースのクライアントを実装するための推奨される方法は何ですか?

これまでの私の解決策は

  • AJAX 更新パネルを使用した ASP.NET Web フォーム (これが最も実行可能と思われます)
  • JavaScript タイムアウトで Web サービスに接続する jQuery の使用

ポーリング

新しいメッセージのためにサーバーをポーリングする頻度は? 0.5 秒は少し長すぎるように思われ、2 ~ 3 秒の間は遅く感じられます。

ご意見ありがとうございます。

4

3 に答える 3

6

接続のプールを用意し、サーバーとクライアントの間で、セッション ID に基づいて適切なクライアントにデータを送信する一種のプロキシを維持します。これは、チャットサーバーがパケット攻撃から保護されていることを意味し、攻撃者がハイジャックして必要なことを行う可能性のある Web ソケットに対処する必要がなくなります。

于 2012-05-07T09:36:46.087 に答える
4

質問が古いことは知っていますが、現在はさらに優れたアプローチがあります。

SignalR は、このようなもののために設計されています (リアルタイム Web 機能)

SignalR を使用して、あらゆる種類の "リアルタイム" Web 機能を ASP.NET アプリケーションに追加できます。例としてチャットがよく使われますが、もっと多くのことができます。ユーザーが Web ページを更新して新しいデータを表示するとき、またはページが Ajax ロング ポーリングを実装して新しいデータを取得するときはいつでも、SignalR を使用する候補です。

ここでは、基本的なチャット アプリケーションのチュートリアルを示します

詳細については、SignalR Web サイトを参照してください。

于 2013-05-24T10:07:42.143 に答える
1

ASP.NET (ソケットと更新パネル) を使用するのが最善の方法だと思います。このコンテキストで jQuery を使用することは、リアルタイム通信に必要なチャット サーバーで永続的な状態を維持できないため、少し無効に思えます。

私が見つけた別の方法は、Web ソケットと Backbone.JS を使用して、サーバーから返されたデータを処理することです。

http://blog.fogcreek.com/the-trello-tech-stack/

于 2012-05-04T07:49:06.547 に答える