Sha256: 10a542e9110149dca2050149ad53bca5da6f68a1bc421227fd692bf95b81f2b9
Contents?: true
Size: 1.42 KB
Versions: 1
Compression:
Stored size: 1.42 KB
Contents
require 'docker' require 'awesome_print' require 'socket' require 'celluloid/io' require 'celluloid/autostart' require 'json' module Baleen class Server include Celluloid::IO finalizer :shutdown def initialize(docker_host: "127.0.0.1", docker_port: 4243, port: 5533) Docker.url = "http://#{docker_host}:#{docker_port}" @server = TCPServer.new("0.0.0.0", port) async.run end def run loop { async.handle_connection @server.accept } end def shutdown @server.close if @server end def handle_connection(socket) loop { handle_request(socket) } rescue Exception => ex case ex when IOError; nil # when trying to close already closed socket else warn "Unknown exception occured" ap ex raise ex end end def handle_request(socket) message = socket.gets if message.nil? socket.close return end msg = parse_request(message) case msg when Message::Request::ClientDisconnect socket.close when Message::Request::Cucumber manager = RunnerManager.new(socket, msg) manager.run else warn "Received unknown request" ap msg end end def parse_request(message) #info "Got request from client" #ap message Baleen::Message::Decoder.new(message).decode end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
baleen-0.0.11 | lib/baleen/server.rb |