SERVERS
ServersCollection constant containing references to the current app's web and websockets servers.
ServersCollection(webserver::Union{Task,Nothing}, websockets::Union{Task,Nothing})
Represents a object containing references to Genie's web and websockets servers.
down(; webserver::Bool = true, websockets::Bool = true) :: ServersCollection
Shuts down the servers optionally indicating which of the webserver
and websockets
servers to be stopped. It does not remove the servers from the SERVERS
collection. Returns the collection.
function down!(; webserver::Bool = true, websockets::Bool = true) :: Vector{ServersCollection}
Shuts down all the servers and empties the SERVERS
collection. Returns the empty collection.
handle_request(req::HTTP.Request, res::HTTP.Response) :: HTTP.Response
Http server handler function - invoked when the server gets a request.
handle_ws_request(req::HTTP.Request, msg::String, ws_client) :: String
Http server handler function - invoked when the server gets a request.
serve(path::String = pwd(), params...; kwparams...)
Serves a folder of static files located at path
. Allows Genie to be used as a static files web server. The params
and kwparams
arguments are forwarded to Genie.up()
.
Arguments
path::String
: the folder of static files to be served by the serverparams
: additional arguments which are passed toGenie.up
to control the web serverkwparams
: additional keyword arguments which are passed toGenie.up
to control the web server
Examples
julia> Genie.serve("public", 8888, async = false, verbose = true)
[ Info: Ready!
2019-08-06 16:39:20:DEBUG:Main: Web Server starting at http://127.0.0.1:8888
[ Info: Listening on: 127.0.0.1:8888
[ Info: Accept (1): 🔗 0↑ 0↓ 1s 127.0.0.1:8888:8888 ≣16
setup_http_listener(req::HTTP.Request, res::HTTP.Response = HTTP.Response()) :: HTTP.Response
Configures the handler for the HTTP Request and handles errors.
setup_ws_handler(stream::HTTP.Stream, ws_client) :: Nothing
Configures the handler for WebSockets requests.
up(port::Int = Genie.config.server_port, host::String = Genie.config.server_host;
ws_port::Int = Genie.config.websockets_port, async::Bool = ! Genie.config.run_as_server) :: ServersCollection
Starts the web server.
Arguments
port::Int
: the port used by the web serverhost::String
: the host used by the web serverws_port::Int
: the port used by the Web Sockets serverasync::Bool
: run the web server task asynchronously
Examples
julia> up(8000, "127.0.0.1", async = false)
[ Info: Ready!
Web Server starting at http://127.0.0.1:8000
update_config(port::Int, host::String, ws_port::Int) :: Nothing
Updates the corresponding Genie configurations to the corresponding values for port
, host
, and ws_port
, if these are passed as arguments when starting up the server.