我正在尝试将 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、基本身份验证等),我不想自己动手。