4

EventMachine と ruby​​ on rails を使ってチャットシステムを構築しています。学習目的です。

これは、クライアントがサーバーに接続する方法です。

c = TCPSocket.open(ip_address, port)
data = {:user_id => 2, :message => 'hello world'}
c.send(data)
response = c.gets
c.close

できます。ただし、問題は、上に示したように、クライアントが常に接続を開いたり閉じたりしているため、現在部屋でチャットしている人のリストを取得できないことです。

別の計画は、接続されたユーザーごとに EventMachine クライアントを実行することです。各ユーザーのセッションにクライアント接続を保存する予定です。このようにして、各ユーザーに同じ質問を使用します。ユーザーがログアウトしたら、接続を閉じます。

ただし、ユーザーが外出した場合、クライアント接続を自分で閉じるにはどうすればよいですか。

何かご意見は。

4

3 に答える 3

2

独自に作成する代わりに、 Juggernautライブラリで構築できる場合があります。これはまさにこの種のことを行うサンプルを持つ EventMachine フレームワークです。

于 2010-08-16T17:09:02.270 に答える
1

メッセージがデータベース内に保存されている場合は、過去 5 分間にメッセージを書いたユーザーを照会します。そうすれば、アイドル状態が 5 分以上続くと、自動的にチャットルームにいないと見なされます。

于 2009-12-11T22:33:31.923 に答える
0

普通の古い IRC は ping を使用しますか? ポン!メソッド、ここにも適用できます:D

于 2011-07-08T17:12:52.207 に答える