Packages
thousand_island
0.1.0
1.5.0
1.4.3
1.4.2
1.4.1
1.4.0
1.3.14
1.3.13
1.3.12
1.3.11
1.3.10
1.3.9
1.3.8
1.3.7
1.3.6
1.3.5
1.3.4
1.3.3
1.3.2
1.3.1
1.3.0
1.2.0
1.1.0
1.0.0
1.0.0-pre.7
1.0.0-pre.6
1.0.0-pre.5
1.0.0-pre.4
1.0.0-pre.3
1.0.0-pre.2
1.0.0-pre.1
0.6.7
0.6.6
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.17
0.5.16
0.5.15
0.5.14
0.5.13
0.5.12
0.5.11
0.5.10
0.5.9
0.5.8
0.5.7
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.3
0.3.2
0.3.1
0.3.0
0.2.1
0.2.0
0.1.3
0.1.2
0.1.1
0.1.0
A simple & modern pure Elixir socket server
Current section
Files
Jump to
Current section
Files
lib/thousand_island/handler.ex
defmodule ThousandIsland.Handler do
@moduledoc """
Defines the behaviour required of the application layer of a Thousand Island
server. Users pass the name of a module implementing this behaviour as the
`handler_module` parameter when starting a server instance, and Thousand Island
will call this module's `c:handle_connection/2` function every time a client
connects to the server.
"""
@doc """
Called by Thousand Island once for every client connection.
This callback is called from a private process managed by Thousand Island, and has
complete and sole control over the given socket. The socket can be written to,
read from, and otherwise manipulated via the `ThousandIsland.Socket` interface.
The socket will already have completed handshaking for protocols which require
such a step (such as SSL). If the socket is not closed within the callback,
Thousand Island will ensure that it is properly closed.
The second argument consists of an arbitrary term specified via the
`handler_options` parameter at server start time.
The return value of this callback is unused.
"""
@callback handle_connection(ThousandIsland.Socket.t(), term()) :: term()
end