Sha256: 2410985efdfa336714c6a6bb7ff3397ef5eb259c5eaa297d5912f74d9b08171e
Contents?: true
Size: 951 Bytes
Versions: 7
Compression:
Stored size: 951 Bytes
Contents
require 'webrick/config' require 'webrick/server' module Protobuf module Rpc class Server < WEBrick::GenericServer def initialize(config={:Port => 9999}, default=WEBrick::Config::General) super config, default setup_handlers end def setup_handlers @handlers = {} end def get_handler(socket) @handlers[socket.readline.strip.to_sym] end def run(socket) handler = get_handler socket request = handler.request_class.new request.parse_from socket response = handler.response_class.new begin handler.process_request request, response rescue StandardError => ex @logger.error ex ensure begin response.serialize_to socket rescue Errno::EPIPE, Errno::ECONNRESET, Errno::ENOTCONN => ex @logger.error ex end end end end end end
Version data entries
7 entries across 7 versions & 2 rubygems