Spring boot gradle프로젝트 생성
기본 설정
id 'org.springframework.boot' version '2.6.4'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
...
sourceCompatibility = '11'
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-websocket'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
}
socket 통신은 서버와 클라이언트가 1:N 관계를 가진다. 따라서 한 서버에 여러 클라이언트가 접속 가능하다.
서버에는 다수의 클라이언트가 발송한 메시지를 받아 처리할 Handler가 필요
TextWebsocketHandler
상속을 받아 Handler 작성
클라이언트에게 받은 메시지를 Console Log에 출력, 클라이언트로 환영 메시지 전송
// import 생략....
@Slf4j
@Component
public class WebSockChatHandler extends TextWebSocketHandler {
@Override
protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
String payload = message.getPayload();
log.info("payload {}", payload);
TextMessage textMessage = new TextMessage("Welcome chatting sever~^^");
session.sendMessage(textMessage);
}
}
Handler를 이용하여 websocket을 활성화하기 위한 Config 파일 작성
@EnablewebSocket
선언하여 websocket 활성화
Websocket에 접속하기 위한 endpoint 설정
/2022.04.25