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) }