๐
#230515
beans ๋ฑ๋ก
websoket:handlers ๋ฑ๋ก
<!-- Websocket ์์ฒญ์ ํธ๋ค๋ฌ ํด๋์ค์ ์ฐ๊ฒฐํ๊ธฐ -->
<beans:bean id="chatHandler" class="edu.kh.comm.chat.model.websocket.ChatWebsocketHandler" />
<!-- id๋์์๋ก ์ ํ๋ ๋ณ์นญ. ํด๋์ค๋ ํจํค์ง์ด๋ฆ + ํด๋์ค ์ด๋ฆ -->
<websocket:handlers>
<!-- ์น์์ผ ์์ฒญ์ ์ฒ๋ฆฌํ bean ์ง์ -->
<websocket:mapping handler="chatHandler" path="/chat"/>
<!-- mapping handler : ์์ beans id๊ฐ /-->
<websocket:handshake-interceptors>
<!-- interceptor : http ํต์ ์์ req, resp๋ฅผ ๊ฐ๋ก์ฑ๋ ์ญํ
handshake-interceptors :
์์ฒญ๊ด๋ จ ๋ฐ์ดํฐ ์ค HttpSession(๋ก๊ทธ์ธ์ ๋ณด, ์ฑํ
๋ฐฉ๋ฒํธ)์ ๊ฐ๋ก์ฑ์
WebSocketSession์ ๋ฃ์ด์ฃผ๋ ์ญํ
-->
<beans:bean class="org.springframework.web.socket.server.support.
HttpSessionHandshakeInterceptor" />
</websocket:handshake-interceptors>
<!-- SockJS ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํด์ ๋ง๋ค์ด์ง ์น์์ผ ๊ฐ์ฒด์์ ์ธ์ -->
<websocket:sockjs></websocket:sockjs>
</websocket:handlers>
WebSocketHandler ์ธํฐํ์ด์ค : ์น์์ผ์ ์ํ ๋ฉ์๋๋ฅผ ์ง์ํ๋ ์ธํฐํ์ด์ค
โก๏ธWebSocketHandler ์ธํฐํ์ด์ค๋ฅผ ์์๋ฐ์ ํด๋์ค๋ฅผ ์ด์ฉํด ์น์์ผ ๊ธฐ๋ฅ์ ๊ตฌํ
ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ๋ฉ์ธ์ง๊ฐ ๋์ฐฉํ๋ฉด ์คํ
ํด๋ผ์ด์ธํธ์ ์ฐ๊ฒฐ์ด ์๋ฃ๋๊ณ , ํต์ ํ ์ค๋น๊ฐ ๋๋ฉด ์คํ
ํด๋ผ์ด์ธํธ์ ์ฐ๊ฒฐ์ด ์ข ๋ฃ๋๋ฉด ์คํ
๋ฉ์ธ์ง ์ ์ก์ค ์๋ฌ๊ฐ ๋ฐ์ํ๋ฉด ์คํ
WebSocketHandler ์ธํฐํ์ด์ค๋ฅผ ์์๋ฐ์ ๊ตฌํํ ํ ์คํธ ๋ฉ์ธ์ง ์ ์ฉ ์น์์ผ ํธ๋ค๋ฌ ํด๋์ค
ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ํ ์คํธ ๋ฉ์ธ์ง๋ฅผ ๋ฐ์์๋ ์คํ
public class ChatWebsocketHandler extends TextWebSocketHandler {
// ํด๋ผ์ด์ธํธ์ ์ฐ๊ฒฐ์ด ์๋ฃ๋๊ณ , ํต์ ํ ์ค๋น๊ฐ ๋๋ฉด ์ํ
@Override
public void afterConnectionEstablished(WebSocketSession session) throws Exception {
// WebSocketSession : ์น์์ผ์ ์ ์/์์ฒญํ ํด๋ผ์ด์ธํธ์ ์ธ์
System.out.println(session.getId() + "์ฐ๊ฒฐ๋จ");
}
@Override
protected void handleTextMessage
(WebSocketSession session, TextMessage message)throws Exception {}
@Override
public void afterConnectionClosed
(WebSocketSession session, CloseStatus status) throws Exception {}