私はRubyを使ってチャットアプリケーションを構築しようとしています。先に投稿されたsimilar questionがありますが、私は異なった関連クエリを持っています。私はthis example(以前同様の質問を投稿した人が参照したのと同じです)を見ました。この例のコードは私のために働いていないようです。ターミナルでrubyスクリプトを実行し、ブラウザにURL:http://localhost:1234に接続すると、「localhostからデータを転送しています...」というメッセージが無期限に出ます。Rubyを使ったチャットアプリケーションの構築
ここで1234は、提供されている例で使用されているポート番号です。私の失敗の原因は何かを理解することができません。スクリプトを実行しているときにコマンドラインで何かを指定する必要があるかもしれませんし、他の場所(おそらくブラウザ)からチャット(入力出力)を開始するはずです。私は正確に何をするのか理解できません。これで私を助けてくれますか?
チャットサーバーコードはほとんど変更されていません。私は同じホスト上でWebサービスとチャットサーバーを実行しています。
私はループの開始点まで、私のコードを部分的に動かすことができました。ある時点まで私のために働いていた変更されたコードは以下の通りです。
require 'gserver'
class BasicServer < GServer
def initialize(*args)
super(*args)
# Keep an overall record of the client IDs allocated
# and the lines of chat
@@client_id = 0
@@chat = []
end
def serve(io)
# io.puts("Hello world!")
# Increment the client ID so each client gets a unique ID
@@client_id += 1
my_client_id = @@client_id
my_position = @@chat.size
# io.puts(@@chat.size)
# Give the total number of people who are currently on chat.. for e.g. 0 => 1 person on chat
# Leave a message on the chat queue to signify this client
# has joined the chat
@@chat << [my_client_id, ""]
# io.puts(@@chat)
end
end
server = BasicServer.new(1234)
server.start
#sleep 120
#server.shutdown
すべてのブラウザインスタンスで、新しいクライアントがチャットキューに接続されています(これらのクライアントの識別には固有のクライアントIDがあります)。この例のコードを再利用するには、ユーザーがメッセージを入力してクリックを使用してポストするブラウザインスタンスにテキストボックス(htmlで使用するものに似たもの)を追加します。ボタン(ブラウザにも統合されています)。これは、さまざまなクライアントの他のすべてのブラウザインスタンスに反映され、ユーザーがチャットルームを離れるために文字列「quit」を入力するまで、チャットはこのように進みます。
Rubyでも上記の機能を実装する方法がわかりません。参照する提案や関連記事は本当に役に立ちます。
ありがとうございます!
こんにちは..お世話になり、ありがとうございました。ありがとうございます。私はしばらくして、私は実際に何が望みを得ることができないだろうので、私は実際にはTCPサーバーとWebサーバーを実装していないことを実現しました。 – boddhisattva
これは私がチャットアプリケーションとして構築できるものです: - http://boddhisattvadedicates.blogspot.in/2011/08/chat-application-using-ruby.html – boddhisattva