Tiny Bunny
본문 바로가기
Java

Java - SSE 방식 Chat app

by 내이름효주 2024. 5. 4.
  • ChatClass: 메시지 작성
    @Controller
    @RequestMapping("/chat")
    public class ChatController {
        ChatMessage message = new ChatMessage("홍길동","안녕하세요");
        
        @PostMapping ("/writeMessage")
        @ResponseBody
        public RsData<ChatMessage> writeMessage() {
            return new RsData("S-1","메세지가 작성됨",message);
        }
    }
    
    @AllArgsConstructor
    @Getter
    public class ChatMessage {
        private long id;
        private LocalDateTime createTime;
        private String authorName;
        private String content;
    
        public ChatMessage(String authorName, String content) {
            this(1,LocalDateTime.now(),authorName,content);
        }
    
    }
    
    package com.koreait.exam.chat_app_24_04;
    
    import lombok.AllArgsConstructor;
    import lombok.Getter;
    
    @AllArgsConstructor
    @Getter
    public class RsData<T> {
        private String resultCode;
        private String msg;
        private T data;
    }
  • 메시지 내용들을 리스트에 저장
    private List<ChatMessage> chatMessages = new ArrayList<>();
    
    public record writeMessageResponse(long id) {}
    
    chatMessages.add(message);​
    
    class ChatMessageIdGenerator{ // 메시지를 보낼때 마다 id 증가
        public static long id = 0;
    
        public static long getNextId(){
            return ++id;
        }
    }
  • 메시지 내용 나타내기 (GET)
    @GetMapping("/messages")
    @ResponseBody
    public RsData<List<ChatMessage>> messages() {
        return new RsData<>(
                "S-1",
                "성공",
                chatMessages
                );
    }​
  • POST(작성)

  • GET(리스트) 

➡ 지정한 번호 이후의 아이디를 가진 메시지들을 가져옴

'Java' 카테고리의 다른 글

음원결제 Intellij 세팅  (0) 2024.05.10
Java - Servlet  (0) 2024.05.09
Java - TDD 방법론  (0) 2024.05.03
Java - Fullcalendar  (0) 2024.04.29
Java - input file 커스텀  (0) 2024.04.28