2

Thinのコード/ドキュメントでは、デフォルトの接続タイムアウトは30秒であることが示されています。ただし、これをテストしようとすると、機能しないようです。私は何が欠けていますか?

シンv1.5.0(最新)を使用しています。

# Test this using: curl -X GET http://localhost:3000/test. You will find that the request does not
# timeout after 30s.

require 'thin'

class SimpleAdapter
  def call(env)
    sleep 100
    body = ["hello!"]
    [
      200,
     { 'Content-Type' => 'text/plain' },
      body
    ]
  end
end

server = Thin::Server.new('127.0.0.1', 3000) do
  map '/test' do
    run SimpleAdapter.new
  end
end

server.start!
4

1 に答える 1

5

インライン ドキュメントには次のように記載されています。

接続が切断される前に着信データが到着するまでの最大秒数。

また、Thin はその動作を正しく表示します。つまり、サーバーに telnet で接続すると、次のようになります。

telnet localhost 3000

30 秒待つと、接続が切断されます。ただし、cURL コマンドはすでに完全な HTTP 要求を Thin サーバーに送信しているため、着信データを待っているタイムアウトに達することはありません。

于 2012-12-06T23:05:26.867 に答える