Eventmachine调用两次回调

时间:2013-05-28 20:06:04

标签: ruby eventmachine

我尝试启动eventmachine httpserver示例,但我在puts方法中添加了简单的process_http_request。令我惊讶的是,当我从浏览器访问localhost:8080时,我在终端中看到puts输出两次。

为什么要打印两次?这是一个错误吗?也许我在eventmachine中误解了一些东西。 你可以在下面看到我的例子。

require 'eventmachine'
require 'evma_httpserver'

class MyHttpServer < EM::Connection
  include EM::HttpServer

  def post_init
    super
    no_environment_strings
  end

  def process_http_request
    response = EM::DelegatedHttpResponse.new(self)
    response.status = 200
    response.content_type 'text/html'
    response.content = '<center><h1>Hi there</h1></center>'
    puts 'my_test_string'
    response.send_response
  end
end

EM.run do
  EM.start_server '0.0.0.0', 8080, MyHttpServer
end

1 个答案:

答案 0 :(得分:1)

第一个是对favicon的请求。第二个是页面正文的请求。如果你想把它称为bug,那就是你的bug,而不是图书馆的。