abstract class Earl::SockServer

Overview

A stream socket server.

Direct Known Subclasses

Defined in:

sock_server.cr

Instance Method Summary

Instance methods inherited from class Earl::Supervisor

call call, monitor(agent : Agent) : Nil monitor, reset : Nil reset, terminate : Nil terminate, trap(agent : Agent, exception : Exception | Nil) : Nil trap

Constructor methods inherited from class Earl::Supervisor

new new

Instance methods inherited from module Earl::Logger

log log

Class methods inherited from module Earl::Logger

backends : Array(Backend) backends, debug(agent : Agent, message : String) : Nil
debug(agent : Agent, &block : -> String) : Nil
debug
, debug? : Bool debug?, error(agent : Agent, message : String) : Nil
error(agent : Agent, &block : -> String) : Nil
error(agent : Agent, ex : Exception)
error
, error? : Bool error?, info(agent : Agent, message : String) : Nil
info(agent : Agent, &block : -> String) : Nil
info
, info? : Bool info?, level : Severity level, level=(severity : Severity) : Severity level=, silent? : Bool silent?, warn(agent : Agent, message : String) : Nil
warn(agent : Agent, &block : -> String) : Nil
warn
, warn? : Bool warn?

Instance methods inherited from module Earl::Agent

call call, crashed? : Bool crashed?, recycle : Nil recycle, recycling? : Bool recycling?, reset : Nil reset, running? : Bool running?, spawn(*, link : Agent | Nil = nil, _yield = true) : Nil spawn, start(*, link : Agent | Nil = nil) : Nil start, starting? : Bool starting?, stop : Nil stop, stopped? : Bool stopped?, stopping? : Bool stopping?, terminate : Nil terminate, trap(agent : Agent, exception : Exception | Nil) : Nil trap

Instance Method Detail

def 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")

[View source]
def add_listener(uri : URI) : Nil #

[View source]
def 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.


[View source]
def add_tcp_listener(host : String, port : Int32, *, backlog = ::Socket::SOMAXCONN) : Nil #

Adds a TCP server.


[View source]
def add_unix_listener(path : String, *, mode = nil, backlog = ::Socket::SOMAXCONN) : Nil #

Adds an UNIX server.


[View source]
abstract def call(client : Socket) #

Called in a dedicated Fiber when a server receives a connection. Connections are closed when the method returns or raised.


[View source]
def started? : Bool #

[View source]