-1

Ruby on Rails 3 アプリケーションを使用しており、現在オンラインになっているユーザーのリストを表示できるようにしたいと考えています。たとえば、user1、IP アドレス、国などです。次に、このユーザーがサイトを離れるまで、チャットを開いたり、このユーザーにメッセージをプッシュしたりしたいと考えています。

現在サイトにいるユーザーを正確に監視し、サイトを離れたときにそのユーザーをリストから即座に削除するにはどうすればよいですか?

その後、faye pub/sub 経由で彼らと話すことができます。

4

2 に答える 2

1

現在サイトにいるユーザーを正確に監視し、サイトを離れたときにすぐにリストから削除するにはどうすればよいですか?

HTTP を使用すると、ブラウザでこれを「即座に」行うことはできません。私が見るほとんどすべてのソリューションは、ハートビート技術を使用しています。X 秒ごとに、ブラウザーから (Ajax を使用して) 要求が送信され、ユーザーがオンラインかどうかがわかります。x ハートビートでユーザーから連絡がない場合、ユーザーは切断されていると見なされます。Facebook でさえこれを使用しているようです。本当に重要でない限り、すぐに要件を削除することをお勧めします。

もう 1 つの方法は、Flash または Silverlight を実装して、サーバーへのソケット接続を確立することです。しかし、サーバーの需要は高く、多くの人がサイトにアクセスすると、ポートなどで問題が発生します。

于 2011-07-03T10:45:08.760 に答える
0

これはRubyonRailsとはあまり関係がないと思いますが、スクリプト言語のみを使用してHTTPで実装するのは非常に困難です。サーバーは、ユーザーがブラウザーを閉じたかどうかを知りません。サーバーは、要求されたページデータをユーザーに送信し、接続を閉じます。

物事を簡単にするために、AjaxまたはFlashを統合する必要があります。Flashを使用してチャットプログラムを開発している人を見たことがありますが、Ajaxで実装されている他のチャットプログラムよりもはるかにうまく機能しているようです。

ユーザーがリンクをクリックするとページが再ロードされるため、チャットはWebブラウジングのコンテキストでは非常に不利です。チャット機能のみをサポートするアプリケーションの構築を検討している場合は、RubyonRails以外のものを探したいと思うでしょう。たとえば、Node.jsは良いものになります。

于 2011-07-03T10:15:36.993 に答える