Ruby 用の堅牢な TCP サーバー (JavaScript 用の Node.js など) を推奨できる人はいますか? Ruby で使用できる TCPServer クラスがあることは理解していますが、複数のクライアントやマルチスレッドなどを処理するコードを記述する必要がないため、より堅牢なものが必要です。Ruby TCP 用のライブラリ/フレームワークはありますか?サーバーはNode.jsのようなものですか?
2 に答える
EventMachineまたはCelluloidが必要なようです。EM はイベント駆動型の同時実行であり、node.js と非常によく似た動作をします。Celluloid は、より伝統的なマルチスレッドです。
MRI を使用している場合は、MRI Ruby の同時実行モデルの制限により、最初に EM を検討することをお勧めします。JRuby を使用している場合は、Celluloid が適切なソリューションである可能性があります。
シナトラ、特に彼らの「README 」を見てください。非常に使いやすく、複数のクライアントとマルチスレッドを処理し、セットアップも簡単です。
彼らが彼らのサイトのフロントページに示すように、これを「hi.rb」と呼ばれるファイルに入れてください:
require 'sinatra'
get '/hi' do
"Hello World!"
end
次に、コマンドラインで次のように入力します。
gem install sinatra
ruby hi.rb
あなたはオフになって実行されます。を使用してThinをインストールするgem install thin
と、Sinatraはそれを基盤となるHTTPdとして使用し、EventMachineの基盤を得ることができます。
Sinatraは、私が知っているRubyでWeb上で何かを取得するための最も速くて簡単な方法であり、非常に堅牢です。通常の社内使用の場合、それは素晴らしいです。
シナトラの上の次のステップとして、パドリーノを見てください。Sinatraの上に構築されていますが、Railsに少し似ています。
HTMLコンテンツを生成するためにHAMLを調べることもお勧めします。それは素晴らしいツールです。