Vert.x + spring 접속자간 웹페이지 대화 기능 구현 [3 / 4]
JSP & Servlet 2014. 2. 26. 12:32 |[3. Vert.x 동작 코드 작성 및 스프링 연결(?)]
Vert.x는 독립적인 애플리케이션으로 구성할 수도 있고
스프링+Vert.x 처럼 Embedded 형태로 구성할 수도 있습니다
저는 Embedded 형태로 작성을 하였구요
자세한 방법은 [http://vertx.io] 나
백기선님의 강의 영상[http://devon.daum.net/2012/session/b3#.Uw1du-N_tWA]을 봐주시면 됩니다
ㅇ VertxSample 클래스
package com.spring.vertx.controller;
import org.vertx.java.core.Handler;
import org.vertx.java.core.Vertx;
import org.vertx.java.core.http.HttpServer;
import org.vertx.java.core.json.JsonObject;
import com.nhncorp.mods.socket.io.SocketIOServer;
import com.nhncorp.mods.socket.io.SocketIOSocket;
import com.nhncorp.mods.socket.io.impl.DefaultSocketIOServer;
import com.nhncorp.mods.socket.io.spring.DefaultEmbeddableVerticle;
public class VertxSample extends DefaultEmbeddableVerticle {
private static SocketIOServer io = null;
@Override
public void start(Vertx vertx) {
int port = 12345;
HttpServer server = vertx.createHttpServer();
io = new DefaultSocketIOServer(vertx, server);
io.sockets().onConnection(new Handler<SocketIOSocket>() {
public void handle(final SocketIOSocket socket) {
socket.on("msg", new Handler<JsonObject>() {
public void handle(JsonObject event) {
System.out.println("handler ::: " + event.getString("msg"));
io.sockets().emit("response", event);
}
});
}
});
server.listen(port);
}
}
VertxSample 클래스를 그냥 controller 패키지 안에 넣었습니다 ㅎㅎ
간략하게 설명하자면...
- HttpServer 생성 : HttpServer server = vertx.createHttpServer()
- Connection 이벤트 연결 : io.sockets().onConnection()
- 특정 키 명으로 요청시 동작할 이벤트 연결 : socket.on()
- 모든 클라이언트로 메세지 전달 : io.sockets().emit()
순수 Vert.x 모듈만 가지고 작성을 하려면 굉장히 힘들텐데
백기선님께서 mod-socket-io 라는 좋은 모듈을 만들어 주셔서 위처럼 간단하게 구현이 가능합니다
이제 위 클래스를 스프링 프로젝트가 로드될때 같이 실행시켜 주기만 하면 됩니다
vertx-servlet.xml 에 bean 으로 선언만 해주시면 프로젝트가 로드될때 같이 실행이 됩니다
그래서 2장에서 작성했던 vertx-servlet.xml 에서 주석처리 했던 것을 풀어 주시면 됩니다
<bean id="vertxSample" class="com.spring.vertx.controller.VertxSample" />
서버 쪽 구성은 이제 끝났습니다
다음 장에서는 클라이언트에서 socket.io.js 를 사용하여 요청 및 출력하는 부분을 만들어 보도록 하겠습니다
'JSP & Servlet' 카테고리의 다른 글
tomcat 이클립스 설정 (0) | 2014.07.25 |
---|---|
Vert.x + spring 접속자간 웹페이지 대화 기능 구현 [4 / 4] (18) | 2014.02.26 |
Vert.x + spring 접속자간 웹페이지 대화 기능 구현 [2 / 4] (2) | 2014.02.26 |
Vert.x + spring 접속자간 웹페이지 대화 기능 구현 [1 / 4] (0) | 2014.02.26 |
JSTL 정리 (0) | 2013.06.20 |