Files
core/test/rust/fixtures/live-http.dever
T
2026-11-03 03:32:07 +00:00

29 lines
939 B
Plaintext

route(request: dever.http.Request, reply: dever.system.HttpReply) () {
selected(request.target == "/sse", reply)
}
selected(sse: true, reply: dever.system.HttpReply) () {
dever.sse.start(reply, [])
dever.sse.send(reply, dever.sse.Event { event = "change", data = "一\n二", id = "", retry_ms = 10 })
dever.task.sleep(250)
dever.http.finish(reply)
}
selected(sse: false, reply: dever.system.HttpReply) () {
dever.http.start(reply, 200, [])
dever.http.write(reply, dever.bytes.fromText("first"))
dever.task.sleep(250)
dever.http.write(reply, dever.bytes.fromText("last"))
}
serve() () {
listener = dever.net.listen("127.0.0.1", 0)
port = dever.net.port(listener)
blocking(dever.io.println(int.toText(port)))
limits = dever.http.defaultLimits()
limits.timeout_ms = 100
live = dever.http.defaultLiveLimits()
live.heartbeat_ms = 30
live.idle_ms = 500
dever.http.serveLive(route, listener, limits, live)
}