class UV::TcpServer
Public Class Methods
new(reactor, server, port, klass, *args)
click to toggle source
Calls superclass method
# File lib/uv-rays/tcp_server.rb, line 7 def initialize(reactor, server, port, klass, *args) super(reactor) @klass = klass @args = args if server == port && port.is_a?(Integer) # We are opening a socket descriptor open(server) else # Perform basic checks before attempting to bind address server = '127.0.0.1' if server == 'localhost' if IPAddress.valid? server @server = server bind(server, port) { |client| new_connection(client) } listen(1024) else raise ArgumentError, "Invalid server address #{server}" end end end
Private Instance Methods
new_connection(client)
click to toggle source
# File lib/uv-rays/tcp_server.rb, line 33 def new_connection(client) # prevent buffering client.enable_nodelay # create the connection class c = @klass.new(client) c.post_init *@args # start read after post init and call connected client.start_read c.on_connect(client) end