3

Web ベースのチャット クライアントは、 Twisted Frameworkなどのネットワーク フレームワークを使用する傾向があると聞いています。

しかし、ネットワーキング フレームワークなしで、 Ajax接続のみを使用して Web ベースのチャット クライアントを構築することは可能でしょうか?

セッションを使用してチャットが終了したことを示す、セッションベースの 1 対 1 の Web チャット クライアントを構築したいと考えています。これは、ネットワーク フレームワークなしで ajax のみを使用する Rails で可能でしょうか?

ネットワーク フレームワークを使用するとどのような影響があり、それを使用しないとアプリにどのような影響がありますか? また、このプロジェクトにアプローチするための一般的な推奨事項をいただければ幸いです。

4

2 に答える 2

5

私があなたを正しく理解していれば、クライアントがサーバーに接続し、サーバーを介して、ajax を介して互いにメッセージを送信する必要があります。これは可能です。これを行うには 2 つの方法があります。

簡単な方法は、両方のクライアントが数秒ごとにポーリングして、他のクライアントが投稿した新しいメッセージをチェックすることです。欠点は、メッセージがすぐに配信されないことです。これはRails bookにある例だと思います。

より複雑なアプローチは、開いた接続を維持し、サーバーがメッセージを受信したらすぐにクライアントに送信することです。これを行うには、Juggernautのようなものを使用できます

後者は機能しますが、それはhttpが意図したものではなく、少しハックであることを付け加えたいと思いますが、仕事を成し遂げるものは何でも。この実用的な例は、ジャガーノートの派生物を使用するRails チャット プロジェクトです。

于 2009-06-25T23:57:57.333 に答える
3

技術的に言えば、すべてのネットワークベースのアプリケーションはその下にネットワークフレームワークを持っているため、ソケットベースです...

ここでの唯一の実際の問題は、おしゃべりをすべてサーバーを通過させたいのか、それともポイントツーポイント通信を許可したいのかということです. 前者の場合、ajax フレームワークを使用して Web サーバーと通信できます。これは、すべてのクライアントが更新のために Web サーバーを絶えずポーリングすることを意味します。

後者の場合は、2 つのクライアント間の直接 TCP 接続を許可する必要があり、いわば金属に少し近づく必要があります。

ですから、次のことを自問してみてください。トラフィック コストを負担したいですか。また、人々がクライアントに入力している内容が何であれ、それを漏らしてしまう可能性がありますか。それとも、人々がお互いに話すために使用できるチャット プログラムを作成しますか?

もちろん、そこまで行く前に、本当に別のチャット クライアントを構築したいですか? そのスペースはすでにかなり混雑しています。

于 2009-06-25T23:15:31.427 に答える