본문 바로가기

WebSocket3

Spring MVC에 웹소켓 집어넣기 3 주말에 특강 와주시는 현직 강사님의 도움으로 방장이 나갔을 때 메시지가 전송이 안 되던 이유를 알아냈다. 세션 리스트에서 각 세션마다 메시지를 보내주기 때문에 세션 길이만큼 포문이 회전하는데 팀원이 나가고 방장이 세션에 존재할 경우 리스트 0번째인 방장은 그대로 존재하기 때문에 메시지가 전송된다. 그런데 방장이 나가고 팀원이 세션에 존재할 경우 리스트 0번째인 방장이 나가서 바로 catch가 되어 메시지 전송이 안 됨.!!!!!!!!!!!!!!!! 그래서 !!!!!!!! 트라이캐치를 안에 한번 더 넣어서 돌렸다!!!!!!!!!!!!!! 이제 된다!!!!!!!!!!!!! 와!!!!!!!!!!!!!!!!!!!!!!!!!!! 2021. 7. 31.
Spring MVC에 웹소켓 집어넣기 2 쓰는걸 잊고 있었다. 제 때 적어두면 시간대가 같이 남아있어서 언제 뭘 했는지 알 수 있어서 좋은데 제 때 기록하기는 쉽지 않은듯... 다중 채팅방을 구현하고 싶었기 때문에 Map을 사용해서 세션을 나눠줬다. 웹소켓은 하나의 세션만 가지고 있기 때문에 접속하는 친구들에게 라벨을 붙여서 나눠주는 방식으로 구성했다. key값에 해당하는 String은 방 번호를 집어넣었고, value값에 해당하는 List는 같은 방에 들어간 사람들로 구성된 리스트! 웹소켓 핸들러에서 대부분의 행동을 수행하게 되는데 핸들러가 상속받는 TextWebSocketHandler에서 제공해주는 세 개의 메서드에서 모두 세션을 구분해주어야 하기 때문에 상단 전역변수로 선언해주었다. 방에 접속하는것을 알리는 첫번째 메서드 방에 접속한 유저.. 2021. 7. 29.
Spring MVC에 웹소켓 집어넣기 1 Python이랑 Flask로 프로젝트 진행할 때는 환경설정같은 에러가 난 적이 없어서 정말 수월하게 했는데 Spring는... (묵념) 환경설정 때문에 계속 톰캣이 난리칠 때 현기증나고 너무 어지럽고... 자바 수업 둘쨋날에 선생님이 이진법 발언을 했던 순간 생각나고 (수포자 문과생) 당장 뛰쳐나가고 싶지만 오기 생겨서 더 이겨먹고싶고... 어쨌든 저런 구구절절 환경설정을 전부 실패하고 이클립스(진짜 멍멍ㅇㅣ같이힘들다 이클립스 환경설정)를 집어던진채 인텔리제이를 활용해서 구글링과 유튜브의 도움을 받아 골고루 다 시도해 본 결과 성공한 코드가 있어서 일단 잊어버리기 전에 백업을 해두기로 했다. 아직 수정중인 코드이기 때문에 제대로 정리되는대로 수정하겠음. 이하는 무지성 삽입의 나쁜 예(나). 코드로 누빔이.. 2021. 7. 15.