Skip to content

Instantly share code, notes, and snippets.

@mopemope
Created August 6, 2015 08:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mopemope/6e792d471dbddb1b5970 to your computer and use it in GitHub Desktop.
Save mopemope/6e792d471dbddb1b5970 to your computer and use it in GitHub Desktop.
http server
use "net/http"
actor Main
new create(env: Env) =>
let service = try env.args(1) else "50000" end
let limit = try env.args(2).u64() else 100 end
Server(Info(env), Handle, CommonLog(env.out) where service = service,
limit = limit)
class Info
let _env: Env
new iso create(env: Env) =>
_env = env
fun ref listening(server: Server ref) =>
try
(let host, let service) = server.local_address().name()
_env.out.print("Listening on " + host + ":" + service)
else
_env.out.print("Couldn't get local address.")
server.dispose()
end
fun ref not_listening(server: Server ref) =>
_env.out.print("Failed to listen.")
fun ref closed(server: Server ref) =>
_env.out.print("Shutdown.")
primitive Handle
fun val apply(request: Payload) =>
let response = Payload.response()
response.add_chunk("Hello World")
(consume request).respond(consume response)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment