Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 리액트 Context 사용방법
- JSTL 초기세팅
- 스프링 문자보내기 구현
- 리액트 훅 사용하기
- css 레이아웃
- 엑셀 다운로드 기능
- css layout
- 프론트엔드개발자
- 스프링 엑셀 다운로드 기능
- JSTL 사용방법
- sql 타입
- 인텔리제이 콘솔 한글깨짐 해결방법
- 소셜로그인 API
- 자바스크립트
- 인텔리제이 콘솔 한글깨짐
- 스프링 엑셀 다운로드 의존성
- 스프링 엑셀 다운로드 기능 만들기
- 자바스크립트 변수 상수 차이
- 스프링 시큐리티
- 인텔리제이 콘솔 한글안됨
- 스프링 문자보내기 API
- SQL 문법
- coolSMS 사용방법
- 문자보내는 API사용방법
- 스프링 문자 인증
- 프론트엔드
- 자바 문법
- CSS
- HTML
- 문자보내는 API
Archives
- Today
- Total
keembloo
웹소켓 spring에서 사용하기 기본 정리 본문
728x90
1. 라이브러리 설치하기
WebSocket 검색하여 gradle - dependencies에 추가해준다.
implementation 'org.springframework.boot:spring-boot-starter-websocket'
2. 서버 소켓 연결 매핑 주소 만들기
config 폴더에 클래스 만든다.
웹소켓관련 config(커스텀설정)하는 방법이다.
스프링은 restAPI를(post,put,get,delete) 자동으로 지원한다.
restAPI는 프로토콜 주소 http 를 사용하지만
웹소켓은 웹소켓 프로토콜 ws 를 사용한다.
때문에 웹소켓을 사용하려면 config에서 매핑을 잡아줘야한다.
@Component // 스프링 컨테이너에 빈등록
public class WebSocketConfig implements WebSocketConfigurer {
@Autowired private ChattingController chattingController;
@Override // 여기에 사용할 서버소켓들의 매핑주소와 접근제한 설정
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(chattingController , "/chat");
}
}
registerWebSocketHandlers : 서버소켓 매핑 주소와 접근제한 주소 제공
3. 서버 소켓 클래스 만들기
추가적으로 서버 소켓 클래스/객체를 만들어야한다.
컨트롤러 폴더에 클래스 만든다.
TextWebSocketHandler 상속 받는다.
오버라이딩한다.
@Component // 스프링 컨테이너에 빈등록
public class ChattingController extends TextWebSocketHandler {
// 1.클라이언트 소켓과 연동 성공했을때
@Override
public void afterConnectionEstablished(WebSocketSession session) throws Exception {
System.out.println("session = " + session);
}
// 2. 클라이언트소켓과 연동 오류가 발생했을때
@Override
public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception {
System.out.println("session = " + session + ", exception = " + exception);
}
// 3. 클라이언트소켓과 연동이 끊겼을때
@Override
public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {
System.out.println("session = " + session + ", status = " + status);
}
// 4. 클라이언트소켓으로부터 메세지를 받았을때
@Override
protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
System.out.println("session = " + session + ", message = " + message);
}
}
afterConnectionEstablished : 클라이언트소켓으로부터 접속성공 했을때 이후 메소드
handleTransportError : 클라이언트소켓과 연동 오류가 발생했을때 이후 메소드
afterConnectionClosed : 클라이언트소켓과 연동이 끊겼을때 이후 메소드
handleTextMessage : 클라이언트소켓으로부터 메세지를 받았을때 이후 메소드
4. 클라이언트 소켓 생성하기
js 클라이언트 측 소켓을 생성한다.
// 1. 클라이언트 소켓 만들기 ( 생성과 동시에 서버소켓과 연결 )
let 클라이언트소켓 = new WebSocket("ws://서버주소/서버소켓매핑주소") // 주소일치하면 연동완료
// 연동 된 후 코드
console.log(클라이언트소켓);
// 1. 서버소켓과 연동 성공했을때 이후 메소드
클라이언트소켓.onopen = (e)=>{console.log(e); }
// 2. 서버소켓과 세션 오류가 발생했을때 이후 메소드
클라이언트소켓.onerror = (e)=>{console.log(e); }
// 3. 서버소켓과 연동이 끊겼을때 이후 메소드
클라이언트소켓.onclose = (e)=>{console.log(e); }
// 4. 서버소켓으로부터 메세지를 받았을때 이후 메소드
클라이언트소켓.onmessage = (e)=>{console.log(e); }
// 2. 클라이언트소켓 메세지 전송
const msgSend = (e) =>{ 클라이언트소켓.send("안녕"); }
생성과 동시에 서버 소켓과 연결이 된다.
연결 된 메소드를 통해 추후 코드를 작성할 수 있다.
onopen : 연동 성공했을때 이후 메소드
onerror : 오류 발생했을때 이후 메소드
onclose : 연동 끊겼을때 이후 메소드
onmessage : 메세지를 받았을때 이후 메소드
클라이언트 소켓이 서버소켓으로부터 메세지를 보낼 때는
send 함수를 사용하여 보낼 수 있다.
이는 모두 라이브러리 내장 함수들이다.
728x90
'Spring' 카테고리의 다른 글
[Spring] 스프링 문자 인증 구현하기 - coolSMS API 사용방법 (0) | 2023.11.15 |
---|---|
Spring Security 스프링 시큐리티 정리 (1) | 2023.10.30 |
DB와 객체의 양방향 연관관계 / JPA 양방향 관계 (mappedBy) (0) | 2023.10.19 |
JPA Auditing 정리 (0) | 2023.10.18 |
Spring 아키텍처 (0) | 2023.10.17 |