lib/em-midori/server.rb in em-midori-0.0.9.1 vs lib/em-midori/server.rb in em-midori-0.0.9.2

- old
+ new

@@ -1,29 +1,31 @@ module Midori::Server attr_accessor :request, :api, :websocket, :eventsource - def initialize(api) + def initialize(api, logger) @api = api + @logger = logger @request = Midori::Request.new @websocket = Midori::WebSocket.new(self) @eventsource = Midori::EventSource.new(self) end def receive_data(data) - ->() {async_internal(Fiber.new do + ->() { 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 + now_time = Time.now + @logger.info "#{@request.ip} - - \"#{@request.method} #{@request.path} #{@request.protocol}\" #{@response.status} #{(now_time.to_f - start_time.to_f).round(5)}".green + end) }.call end def receive_new_request(data) begin @request.parse(data) @@ -31,12 +33,12 @@ call_event(:open) if @request.websocket? rescue Midori::Error::NotFound => _e @response = Midori::Response.new(404, {}, '404 Not Found') rescue => e @response = Midori::Response.new(500, {}, 'Internal Server Error') - puts e.inspect.red - puts e.backtrace.join("\n").yellow + @logger.error e.inspect.red + @logger.warn e.backtrace.join("\n").yellow end unless @request.websocket? || @request.eventsource? send_data @response close_connection_after_writing end @@ -56,15 +58,15 @@ rescue Midori::Error::FrameEnd => _e call_event(:close) send_data "\b" # Opcode 0x8 close_connection_after_writing rescue Midori::Error::PingPongSizeTooLarge => e - puts e.inspect.yellow + @logger.warn e.inspect.yellow call_event(:error) # Neglect Too large ping request rescue => e call_event(:error) - puts e.inspect.red - puts e.backtrace.join("\n").yellow + @logger.error e.inspect.red + @logger.warn e.backtrace.join("\n").yellow close_connection_after_writing end def call_event(event, args = []) (-> { @websocket.instance_exec(*args, &@websocket.events[event]) }.call) unless @websocket.events[event].nil?