在我的应用程序中,send_data
方法是否有任何落后的原因?我的telnet(许多其他客户端测试了相同的结果)窗口等待1-2秒,然后才发送数据。
以下申请没有延迟:
require 'eventmachine'
class AreaServer < EventMachine::Connection
attr_accessor :options, :status
def receive_data(data)
send_data("I got: #{data}\r\n")
end
end
EM.run do
EM.start_server '192.168.0.199', 4000, AreaServer do |conn|
conn.options = {:my => 'options'}
conn.status = :OK
end
end
所以我怀疑这不是一个网络问题。
答案 0 :(得分:0)
输出流似乎在写完后保持打开状态,所以我试图找到一个解决方案来关闭这个流。
如果您将close_connection_after_writing
写入receive_data
,则会在写入后关闭该流。我猜你应该关掉keep_alive选项。
class AreaServer < EventMachine::Connection attr_accessor :options, :status def receive_data(data) send_data("I got: #{data}\n") close_connection_after_writing end end