httpClientGone (Function)

Signature: httpClientGone() -> int

Description: 1 once the client of the request this handler is serving has closed its connection, so a long handler can stop; 0 while it waits, and outside any handler.

Returns: int

Example

fn reply(_method, _path, _headers, _body) = HttpResponse {
    status: 200, headers: "X-Demo: hi\r\n", contentType: "text/plain",
    streamFd: -1, isComplete: true, partialBody: "hello"
}
fn runRequest(client) = {
    let result = toString(httpClientGone())
    let closed = httpCloseClient(client) ?: -1
    "${result}; client close=${closed}"
}
fn request() = match httpCreateClient("http://127.0.0.1:18898", 1000) {
    Success { value } => runRequest(value)
    Error { message } => "client error: ${message}"
}
fn serve(server) = {
    let result = match httpListen(server, reply) {
        Success => request()
        Error { message } => "listen error: ${message}"
    }
    let stopped = httpStopServer(server) ?: -1
    "${result}; server stop=${stopped}"
}
print(match httpCreateServer(18898, "127.0.0.1") {
    Success { value } => serve(value)
    Error { message } => "server error: ${message}"
})