class Myxi::Listener
Public Class Methods
new(event_loop, options)
click to toggle source
# File lib/myxi/listener.rb, line 6 def initialize(event_loop, options) @event_loop = event_loop port = (options[:port] || ENV['MYXI_PORT'] || ENV['PORT'] || 5005).to_i Myxi.logger.info "Running Myxi Web Socket Server on 0.0.0.0:#{port}" if ENV['SERVER_FD'] @socket = TCPServer.for_fd(ENV['SERVER_FD'].to_i) Process.kill('TERM', Process.ppid) else @socket = TCPServer.open(options[:bind_address] || ENV['MYXI_BIND_ADDRESS'], port) ENV['SERVER_FD'] = @socket.to_i.to_s end @socket.close_on_exec = false monitor = event_loop.selector.register(@socket, :r) monitor.value = self end
Public Instance Methods
close()
click to toggle source
# File lib/myxi/listener.rb, line 28 def close @socket.close @event_loop.selector.deregister(@socket) end
handle_r()
click to toggle source
# File lib/myxi/listener.rb, line 22 def handle_r # Incoming client connection client_socket = @socket.accept Session.new(@event_loop, client_socket) end