Earl::SockServer
Inherits Earl::Supervisor < Earl::Logger < Earl::Agent < Reference < Object
A stream socket server.
- Binds to / listens on many interfaces and ports.
- Servers are spawned in a dedicated
Fiberthen supervised. - Incoming connections are handled in their own
Fiberthat runs#call(client)and are eventually closed when the method returns or raised.
Instance methods
add_listener(uri : String) : Nil
Adds a server based on an URI definition. For example:
server.add_listener("unix:///tmp/earl.sock")
server.add_listener("tcp://[::]:9292")
server.add_listener("ssl://10.0.3.1:443/?cert=ssl/server.crt&key=ssl/server.key")
add_listener(uri : URI) : Nil
add_ssl_listener(host : String, port : Int32, ssl_context : OpenSSL::SSL::Context::Server, *, backlog = ::Socket::SOMAXCONN) : Nil
Adds a TCP server with transparent SSL handling.
add_tcp_listener(host : String, port : Int32, *, backlog = ::Socket::SOMAXCONN) : Nil
Adds a TCP server.
add_unix_listener(path : String, *, mode = nil, backlog = ::Socket::SOMAXCONN) : Nil
Adds an UNIX server.
call(client : Socket)
Called in a dedicated Fiber when a server receives a connection.
Connections are closed when the method returns or raised.
started?