29 lines
939 B
Plaintext
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)
|
|
}
|