Sha256: c4b0eb14255ca762fb75361679574ce24b1d7f456361c82aeaa74c815107d00e
Contents?: true
Size: 1.33 KB
Versions: 1
Compression:
Stored size: 1.33 KB
Contents
require 'eventmachine' require 'r_socks/connection_handler' require 'r_socks/config' module RSocks class TcpServer attr_reader :config def initialize(host = '127.0.0.1', port = 8081) @host = host @port = port @config = RSocks::Config.new end def run! begin start_tcp_server rescue Interrupt puts "\nr_socks TPC main server closed now...." end end private def start_tcp_server if @config.instances > 1 spawn_process(@config.instances.to_i) else EventMachine.run do EventMachine.start_server @host, @port, RSocks::ConnectionHandler, @config end end end def attach_and_start_server(server) EventMachine.run do EventMachine.attach_server(server, RSocks::ConnectionHandler, @config) end end def spawn_process(number) server = TCPServer.new(@host, @port) number.times do |i| Process.fork do puts "start r_socks instance @#{i}" begin attach_and_start_server(server) rescue Interrupt puts "r_socks TPC server instance @#{i} closed now...." rescue => e puts "r_socks instance @#{i} exit with exception: \r\n#{e.message}" end end end Process.waitall end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
r_socks-0.2.4 | lib/r_socks/tcp_server.rb |