제가 요즘 요긴하게 써먹고 있는 Vert.x 을 소개하고자 합니다. 폴리글랏이긴 한데, 저는 Java 만을 사용해서 개발하고 있습니다. 그래서 Java 코드만 올리겠습니다.
장문의 글을 올리기 보다는, 바로 어떤 결과가 나오는 짧은 팁만 올리고, 댓글로 보충 내용을 올리는 쪽으로 해보겠습니다. 방송 형태가 적합하겠지만, 할 줄을 몰라서...(컴맹입니다)
------------------------------------------------------------------------------------------------------
HttpServerOptions httpServerOptions = new HttpServerOptions();
// httpServerOptions.setAcceptBacklog(10000);
// httpServerOptions.setSendBufferSize(4 * 1024);
// httpServerOptions.setReceiveBufferSize(4 * 1024);
httpServerOptions.setCompressionSupported(true);
vertx.createHttpServer(httpServerOptions)
.listen(8080);
HttpServerOptions 라는 개체를 통해 옵션을 지정해줄 수 있습니다. 저는 보통 compressionSupported 옵션만을 이용합니다. json 을 결과를 넘겨줄 때 많은 양의 정보를 보내줄 경우 유용합니다. 게임의 기본 데이터를 시작할 때 보내는 경우 몇 메가의 텍스트 데이터를 보내야 하는데, 압축을 하게 되면 1/10 정도까지 용량을 줄여줍니다.
Router router = Router.router(vertx);
Route route = router.route("/:METHOD");
route.handler(routingContext -> {
HttpServerRequest request = routingContext.request();
MultiMap params = request.params();
String method = params.get("METHOD");
System.out.println(method);
request.endHandler(empty -> {
JsonObject param = new JsonObject();
params.forEach(entry -> param.put(entry.getKey(), entry.getValue()));
});
});
HttpServerOptions httpServerOptions = new HttpServerOptions();
httpServerOptions.setCompressionSupported(true);
vertx.createHttpServer(httpServerOptions)
.requestHandler(router::accept)
.listen(8080);
마지막으로, 코드를 좀 더 확장해서 브라우저에 응답을 보내는 것을 해보겠습니다.
Router router = Router.router(vertx);
Route route = router.route("/:METHOD");
route.handler(routingContext -> {
HttpServerRequest request = routingContext.request();
MultiMap params = request.params();
String method = params.get("METHOD");
System.out.println(method);
request.endHandler(empty -> {
JsonObject param = new JsonObject();
params.forEach(entry -> param.put(entry.getKey(), entry.getValue()));
request.response().putHeader("content-type", "application/json");
request.response().end("{\"METHOD\": \"" + method + "\"}");
});
});
HttpServerOptions httpServerOptions = new HttpServerOptions();
httpServerOptions.setCompressionSupported(true);
vertx.createHttpServer(httpServerOptions)
.requestHandler(router::accept)
.listen(8080);
오늘은 여기까지...
이 글은 제 개인 블로그(http://zepinos.blogspot.kr)와 okky(http://okky.kr)에만 공개되는 글입니다. 퍼 가는 것은 금해주시고, 링크로 대신해주시기 바랍니다. 당연히 상업적 용도로 이용하시면...저랑 경찰서에서 정모하셔야 합니다. ^^;;;
위에 작성한 코드 등은 실제 컴파일한 것이 아니라 제가 글을 적으면서 키보드 코딩(?...손 코딩의 친구) 한 것이므로, 오류가 있다면 저에게 알려주시면 고맙겠습니다.
위에 작성한 코드 등은 실제 컴파일한 것이 아니라 제가 글을 적으면서 키보드 코딩(?...손 코딩의 친구) 한 것이므로, 오류가 있다면 저에게 알려주시면 고맙겠습니다.
댓글 없음:
댓글 쓰기