Spring/Spring Stomp 4

[Stomp] Spring Boot with React 채팅 서버 : 3-2. Stomp 기본 설정

1. WebSocketConfig.java 중요한 내용은 주석에 달려있음 @EnableWebSocketMessageBroker websocket의 구현체를 사용할 경우 (대표적으로 stomp) 설정파일에 붙여줌 @Configuration @EnableWebSocketMessageBroker public class WebSocketConfig implements WebSocketMessageBrokerConfigurer { @Override public void registerStompEndpoints(StompEndpointRegistry registry) { // socketJs 클라이언트가 WebSocket 핸드셰이크를 하기 위해 연결할 endpoint를 지정할 수 있다. registry.addEnd..

Spring/Spring Stomp 2022.03.14

[Stomp] Spring Boot with React 채팅 서버 : 3-1. Stomp 정리 및 설명

이제 서버에서 클라이언트에게 STOMP 연결을 할 수 있도록 핸드쉐이크 endpoint, messageBroker의 pub 및 sub prefix를 설정해 주어야 한다. 해당 설정은 스프링에서 설정하기에 매우 쉽다. 하지만 개념을 알아야 요구사항에 따른 구현이 가능하므로 일단 개념부터 잡아보자 1. Websocket 웹소켓 소개 http는 tcp/ip 기반 비연결지향 프로토콜과 대비 websocket 프로토콜(RFC6455) - 연결지향(연결을 끊지 않음), 양방향통신(클라이언트 서버) 서버와 클라이언트가 지속적으로 TCP 라인을 통해 연결되어 양방향 통신이 가능하게 됨 소켓이 유지되는데 동의할 수 있도록 소켓을 수정함 http header의 keep-alive 속성의 값이 계속되도록 설정되어있음 HTT..

Spring/Spring Stomp 2022.03.02

[Stomp] Spring Boot with React 채팅 서버 : 2. ChatRoomController

1번에서 entity 객체를 만들었으니 이제 chatroom controller 를 만들겠습니다. 생성, 정보 요청, 리스트 전달 등의 1. 채팅방 생성 기본적으로 DM은 1:1 채팅방으로 구현되었습니다. (인스타그램, 페이스북 메신저를 따라 만들려고 하였습니다) 1. 개인 DM 을 위한 방 생성 인스타그램이나 페이스북 처럼 해당 사용자에게 DM을 보내고자 할 경우, 프로필에 가서 "사용자와 채팅" 버튼 누르기 "사용자와 채팅" 버튼을 누를 시, roomMakerId는 누른 사람의 Id이고, guestId는 해당 프로필 계정의 Id입니다. 채팅방을 먼저 생성한 후, 사용자들을 해당 채팅방의 Member로 저장합니다. @PostMapping("/personal") // 개인 DM방 생성 public Hcs..

Spring/Spring Stomp 2022.03.02

[Stomp] Spring Boot with React 채팅 서버 : 1. Entity 디자인

이번에 하는 토이프로젝트에서 DM 기능을 구현하는 파트를 맡게 되었다. 약 한달간 일정을 소모하여 여기저기서 찾아보고 강의도 들어가며 구현은 어느정도 완성이 되었다. 해당 토이프로젝트는 JPA를 사용하였으나 동작원리를 공부하고자 DDL은 직접 생성하였다. (도메인 파트별로 sql문 있음) 일단 도메인 객체 디자인부터 0. ERD Diagram 진한 글씨는 PK 테이블간 선으로 연결된 컬럼은 FK many to many : (ChatRoom - ChatRoom_Members - User) 1. ChatRoom @Data @Entity @Table(name = "ChatRoom") @DynamicUpdate @Builder @EqualsAndHashCode(onlyExplicitlyIncluded = tru..

Spring/Spring Stomp 2022.03.02