상세 컨텐츠

본문 제목

[WebSocket] 웹소켓 적용하기

개발/Tools

by 대충고양이짤 2015. 11. 25. 15:55

본문

  개발 환경

- Spring MVC 4.0 이상

- JDK 7

- maven 사용



  웹소켓 적용하기


1.pom.xml

websocket dependency 추가하기


<properties>

<spring.version>4.2.1.RELEASE</spring.version>

</properties>


<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-websocket</artifactId>

<version>${spring.version}</version>

</dependency>



2.app-context.xml (xml config 설정)

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:websocket="http://www.springframework.org/schema/websocket"

xsi:schemaLocation="http://www.springframework.org/schema/beans 

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/websocket

http://www.springframework.org/schema/websocket/spring-websocket.xsd">

<websocket:handlers allowed-origins="*">

<websocket:mapping path="/myHandler" handler="myHandler" />

</websocket:handlers>


<bean id="myHandler" class="org.springframework.samples.MyHandler"/>


allowed-origins : same origin의 요청만받거나 'http://', 'https://'으로 시작하는 특별한 origin을 처리할 수 있다. 모든 요청에 대해 처리하기 위해서는 '*'을 사용한다.



3.MyHandler 설정

@Component

public class MyHandler extends AbstractWebSocketHandler {

@Autowired

private SessionManager clients;


@Override

protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {


super.handleTextMessage(session, message);

String payloadMessage = message.getPayload();


TextMessage returnMessage = new TextMessage(message.getPayload());

session.sendMessage(returnMessage);

if(payloadMessage.equals("test"))

{

session.close();

}

}   



4.main.jsp

function connect() {

console.log('websocket url is : ' + url);

    // 중요 포인트!! url을 이용해서 WebSocket을 생성하고 각각 이벤트에 대한 처리를 정의한다

    ws = new WebSocket(url);


    ws.onopen = function () {

// 서버에 접속한 후 이벤트 정의

log('Info: connection opened.');

    };

    ws.onmessage = function (event) {

// 웹소켓 메시지 수신

log(message);

    };

    ws.onclose = function (event) {

// 서버에서 접속 종료한 후 이벤트 정의

log('Info: connection closed.');

log(event);

    };

    ws.onerror = function (event) {

// 서버에서 에러 발생 후 이벤트 정의

log('Info: connection onerror.');

    };

}



  참고 사이트

- Spring WebSocket - 수앙의 블로그

- egovframework:websocket

관련글 더보기

댓글 영역