HTTP サーバーを既存の Ruby アプリケーションに追加しようとしています。アプリケーションはselect
ループに基づいており、着信 HTTP 要求もそこで処理したいと考えています (同じスレッドで要求を処理することが重要です。そうしないと、フープをジャンプしてそこでマーシャリングする必要があります)。
Ruby にはスタンドアロン HTTP サーバー用のソリューションがたくさんありますが、既存のソケットに HTTP サーバーを実装するライブラリが見つからないようです。HTTP ライブラリがポートを開いて待機するのは望ましくありません。ソケットをフィードしたいのです。
私が探している基本的なロジックは次のとおりです。
handler = SomeHTTPParsingLibrary.new
# set up handler callbacks, etc on handler...
while socket = get_incoming_connection()
handler.handle_request(socket)
end
このように機能する既存の Ruby ライブラリはありますか? HTTP は単純なプロトコルですが、面倒な詳細 (Cookie や基本認証などが必要) が含まれているため、自分で作成したくありません。