發現連續的request會使得response卡住:
OutputStream os = httpExchange.getResponseBody(); os.write(response.getBytes()); //卡住造成阻塞,過很久才會回應, os.close();
解決之道,就是確保connection能close, 並使用multi-thread:
final Executor multi = Executors.newFixedThreadPool(10); final HttpServer server = HttpServer.create(new InetSocketAddress(s_HTTP_PORT), 5); //... do your REST bindings here server.setExecutor(multi); server.start(); //bindings中送出Connection = close 的 header httpExchange.getResponseHeaders().add("Connection", "close");
ref:
http://stackoverflow.com/questions/15235075/1s-delay-in-httpserver-since-java-7