클라이언트에서 웹소켓에 접속 (onopen메서드)
웹소켓 Handler는 afterConnectionEstablished 메서드를 통해 접속한 세션을 만들어 놓은 컬렉션에 담는다.
Map<Integer, ArrayList<WebSocketSession>> roomList
→ 접속한 유저가 속해있는 채팅방 번호를 key로 하여 비어있는 ArrayList를 value로 채워 넣는다.
private Map<WebSocketSession, String> userSessionMap
→ 해당 key는 onopen한 유저의 WebSocketSession값을 넣고 value는 로그인한 유저의 HttpSession에 담긴 userId를 담는다.
private List<WebSocketSession> sessionList
→ 로그인한 전체 session을 담는 List
클라이언트에서 메시지를 보낸다 (send메서드)
웹소켓 Handler는 메세지가 수신되면 (handleTextMessage) 메서드를 통해 전체 세션 또는 특정 세션에 메시지를 보내준다.
클라이언트에서 수신된 메시지를 받는다(onmessage메서드)
클라이언트에서 연결이 종료된다.
웹소켓Handler는 연결이 종료되면 afterConnectionClosed 메서드에서 해당 세션을 삭제한다.
studygroup 과 studymember이 1:N 관계로 작성자는 자동으로 studymember에 해당 studygroup번호와 역할이 주어진다)