View Source ThousandIsland.Transports.TCP (Thousand Island v0.6.4)

Defines a ThousandIsland.Transport implementation based on clear TCP sockets as provided by Erlang's :gen_tcp module. For the most part, users of Thousand Island will only ever need to deal with this module via transport_options passed to ThousandIsland at startup time. A complete list of such options is defined via the t::gen_tcp.listen_option() type. This list can be somewhat difficult to decipher; by far the most common value to pass to this transport is the following:

  • ip: The IP to listen on (defaults to all interfaces). IPs should be described in tuple form (ie: ip: {1, 2, 3, 4}). The value :loopback can be used to only bind to localhost. On platforms which support it (macOS and Linux at a minimum, likely others), you can also bind to a Unix domain socket by specifying a value of ip: {:local, "/path/to/socket"}. Note that the port must be set to 0, and that the socket is not removed from the filesystem after the server shuts down.

Unless overridden, this module uses the following default options:

backlog: 1024,
nodelay: true,
linger: {true, 30},
send_timeout: 30_000,
send_timeout_close: true,
reuseaddr: true

The following options are required for the proper operation of Thousand Island and cannot be overridden at startup (though they can be set via calls to setopts/2)

mode: :binary,
active: false

Link to this section Summary

Link to this section Types