我已经花了几天时间为 eventmachine 寻找一些非回显服务器示例,但似乎没有。假设我想编写一个接受文件并将其写入 Tempfile 的服务器:
require 'rubygems'
require 'tempfile'
require 'eventmachine'
module ExampleServer
def receive_data(data)
f = Tempfile.new('random')
f.write(data)
ensure
f.close
end
end
EventMachine::run {
EventMachine::start_server "127.0.0.1", 8081, ExampleServer
puts 'running example server on 8081'
}
写入文件会阻塞反应堆,但我不知道如何做到“Eventmachine 风格”。我是否必须以块的形式读取数据并将每个块写入 Em.next_tick 块中的磁盘?
感谢您的帮助安德烈亚斯