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 クライアントを実行することです。各ユーザーのセッションにクライアント接続を保存する予定です。このようにして、各ユーザーに同じ質問を使用します。ユーザーがログアウトしたら、接続を閉じます。
ただし、ユーザーが外出した場合、クライアント接続を自分で閉じるにはどうすればよいですか。
何かご意見は。