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 请求,这就是为什么永远不会达到等待传入数据的超时时间的原因。

于 2012-12-06T23:05:26.867 回答