lib/em-midori/server.rb in em-midori-0.0.7.1 vs lib/em-midori/server.rb in em-midori-0.0.8

- old
+ new

@@ -1,25 +1,28 @@ module Midori::Server - attr_accessor :request, :api, :websocket + attr_accessor :request, :api, :websocket, :eventsource def initialize(api) @api = api @request = Midori::Request.new @websocket = Midori::WebSocket.new(self) + @eventsource = Midori::EventSource.new(self) end def receive_data(data) - start_time = Time.now - data = StringIO.new(data) - port, ip = Socket.unpack_sockaddr_in(get_peername) - @request.ip = ip - @request.port = port - if @request.parsed? - websocket_request(data) - else - receive_new_request(data) - end - puts "#{@request.ip} - - [#{Time.now.inspect}] \"#{@request.method} #{@request.path} #{@request.protocol}\" #{@response.status} #{(Time.now.to_f - start_time.to_f).round(5)}".green + ->() {async_internal(Fiber.new do + start_time = Time.now + data = StringIO.new(data) + port, ip = Socket.unpack_sockaddr_in(get_peername) + @request.ip = ip + @request.port = port + if @request.parsed? + websocket_request(data) + else + receive_new_request(data) + end + puts "#{@request.ip} - - [#{Time.now.inspect}] \"#{@request.method} #{@request.path} #{@request.protocol}\" #{@response.status} #{(Time.now.to_f - start_time.to_f).round(5)}".green + end)}.call end def receive_new_request(data) begin @request.parse(data)